/* Copyright (c) 1998   Alexander Yukhimets. All rights reserved. */
#include"axyftp.h"
#include"panel.h"
#include"buttons.h"
#include"dirname.h"
#include"dirlist.h"

#ifdef BUILD_GTK

#include<gtk/gtk.h>
GtkWidget* create_panel(GtkWidget* parent,int which){
  GtkWidget *panel,*form,*box,*dirname,*buttons,*buttonsa,*dirlist;

  switch(which){
    case LOCAL:
      panel=gtk_frame_new("Local System");
      break;
    case REMOTE:
      panel=gtk_frame_new("Remote System");
      break;
    default:
      return NULL;
  }

  gtk_frame_set_label_align(GTK_FRAME(panel),0.05,0);
  gtk_container_border_width(GTK_CONTAINER(panel),6);
  gtk_widget_show(panel);
  gtk_frame_set_shadow_type(GTK_FRAME(panel),GTK_SHADOW_ETCHED_IN);

  form=gtk_vbox_new(FALSE,2);
  gtk_container_add(GTK_CONTAINER(panel),form);
  gtk_widget_show(form);
  gtk_container_border_width(GTK_CONTAINER(form),6);

  dirname=create_dirname(form,which);
  gtk_box_pack_start(GTK_BOX(form),dirname,FALSE,TRUE,2);

  box=gtk_hbox_new(FALSE,6);
  gtk_widget_show(box);
  gtk_box_pack_start(GTK_BOX(form),box,TRUE,TRUE,2);
  
  buttonsa=gtk_alignment_new(1,0,1,0);
  gtk_widget_show(buttonsa);
  buttons=create_buttons(buttonsa,which);
  gtk_container_add(GTK_CONTAINER(buttonsa),buttons);
  gtk_box_pack_end(GTK_BOX(box),buttonsa,FALSE,FALSE,0);
  
  dirlist=create_dirlist(box,which);
  gtk_box_pack_end(GTK_BOX(box),dirlist,TRUE,TRUE,0);

  return panel;

}

#elif defined BUILD_MOTIF

#include<Xm/Screen.h>
#include<Xm/Xm.h>
#include<Xm/Form.h>
#include<Xm/Frame.h>
#include<Xm/Label.h>
#include<Xm/List.h>
#include<Xm/RowColumn.h>

Widget create_panel(Widget parent,int which){
  Arg args[10];
  Cardinal n;
  Widget panel,form,label,dirname,buttons,dirlist;
  XmString l;

  switch(which){
    case LOCAL:
      l=XmStringCreateLocalized("Local System");
      break;
    case REMOTE:
      l=XmStringCreateLocalized("Remote System");
      break;
    default:
      return (Widget)0;
  }

  n=0;
  XtSetArg(args[n],XmNmarginWidth,4);n++;
  XtSetArg(args[n],XmNmarginHeight,4);n++;
  panel=XmCreateFrame(parent,"panel",args,n);
  XtManageChild(panel);

  n=0;
  XtSetArg(args[n],XmNlabelString,l);n++;
  XtSetArg(args[n],XmNchildType,XmFRAME_TITLE_CHILD);n++;
  XtSetArg(args[n],XmNborderWidth,0);n++;
  label=XmCreateLabel(panel,"label",args,n);
  XtManageChild(label);

  n=0;
  XtSetArg(args[n],XmNchildType,XmFRAME_WORKAREA_CHILD);n++;
  XtSetArg(args[n],XmNhorizontalSpacing,2);n++;
  XtSetArg(args[n],XmNverticalSpacing,2);n++;
  form=XmCreateForm(panel,"panel",args,n);
  XtManageChild(form);

  dirname=create_dirname(form,which);
  buttons=create_buttons(form,which);
  dirlist=create_dirlist(form,which);

/*
  n=0;
  XtSetArg(args[n],XmNtopAttachment,XmATTACH_FORM);n++;
  XtSetArg(args[n],XmNleftAttachment,XmATTACH_FORM);n++;
  XtSetArg(args[n],XmNrightAttachment,XmATTACH_NONE);n++;
  XtSetArg(args[n],XmNbottomAttachment,XmATTACH_NONE);n++;
  XtSetValues(label,args,n);
*/
  n=0;
  XtSetArg(args[n],XmNtopAttachment,XmATTACH_FORM);n++;
/*  XtSetArg(args[n],XmNtopWidget,label);n++;*/
  XtSetArg(args[n],XmNleftAttachment,XmATTACH_FORM);n++;
  XtSetArg(args[n],XmNrightAttachment,XmATTACH_FORM);n++;
  XtSetArg(args[n],XmNbottomAttachment,XmATTACH_NONE);n++;
  XtSetValues(dirname,args,n);

  n=0;
  XtSetArg(args[n],XmNtopAttachment,XmATTACH_WIDGET);n++;
  XtSetArg(args[n],XmNtopWidget,dirname);n++;
  XtSetArg(args[n],XmNbottomAttachment,XmATTACH_FORM);n++;
  XtSetArg(args[n],XmNrightAttachment,XmATTACH_FORM);n++;
  XtSetArg(args[n],XmNleftAttachment,XmATTACH_NONE);n++;
  XtSetValues(buttons,args,n);
  
  n=0;
  XtSetArg(args[n],XmNtopAttachment,XmATTACH_WIDGET);n++;
  XtSetArg(args[n],XmNtopWidget,dirname);n++;
  XtSetArg(args[n],XmNbottomAttachment,XmATTACH_FORM);n++;
  XtSetArg(args[n],XmNrightAttachment,XmATTACH_WIDGET);n++;
  XtSetArg(args[n],XmNrightWidget,buttons);n++;
  XtSetArg(args[n],XmNleftAttachment,XmATTACH_FORM);n++;
  XtSetValues(dirlist,args,n);
  
  XmStringFree(l);

  return panel;
}

#else 
#error Either BUILD_GTK or BUILD_MOTIF should be defined
#endif


syntax highlighted by Code2HTML, v. 0.9.1