/* Copyright (c) 1998   Alexander Yukhimets. All rights reserved. */
#include"axyftp.h"
#include"pixmaps.h"
#include"about_dialog.h"

#ifdef BUILD_GTK

#include<gtk/gtk.h>

static int hide_about_cb(GtkWidget *w){
  gtk_widget_hide(appdata.about);
  return TRUE;
}

GtkWidget* create_about_dialog(GtkWidget *parent){
  GtkWidget *about,*hbox,*vbox,*picture,*version,*copyright,*form,*button;
  char version_str[64];

  about=gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_widget_realize(about);

  gtk_signal_connect(GTK_OBJECT(about),"delete_event",
      GTK_SIGNAL_FUNC(hide_about_cb),NULL);
  gtk_window_set_title(GTK_WINDOW(about),"About AxY FTP");
  gtk_container_border_width(GTK_CONTAINER(about),6);
  /*
  gtk_window_position(GTK_WINDOW(about),GTK_WIN_POS_NONE);
  */

  hbox=gtk_hbox_new(FALSE,4);
  gtk_container_add(GTK_CONTAINER(about),hbox);
  gtk_widget_show(hbox);

  picture=gtk_pixmap_new(portret,portmask);
  gtk_box_pack_start(GTK_BOX(hbox),picture,FALSE,FALSE,0);
  gtk_widget_show(picture);

  vbox=gtk_vbox_new(FALSE,2);
  gtk_box_pack_start(GTK_BOX(hbox),vbox,TRUE,TRUE,0);
  gtk_widget_show(vbox);

  sprintf(version_str,
   "AxY FTP  GTK+ %d.%d version %d.%d.%d",
   gtk_major_version,gtk_minor_version,
   AXYFTP_MAJOR,AXYFTP_MINOR,AXYFTP_MICRO);
  version=gtk_label_new(version_str);
  gtk_box_pack_start(GTK_BOX(vbox),version,TRUE,TRUE,4);
  gtk_widget_show(version);

  copyright=gtk_label_new("Copyright (c) 1999  Alexander Yukhimets."
      " All rights reserved.");
  gtk_box_pack_start(GTK_BOX(vbox),copyright,TRUE,TRUE,4);
  gtk_widget_show(copyright);

  form=gtk_alignment_new(0.5,0.5,0,0);
  gtk_box_pack_start(GTK_BOX(vbox),form,FALSE,FALSE,4);
  gtk_widget_show(form);

  button=gtk_button_new_with_label(" OK ");
  gtk_container_add(GTK_CONTAINER(form),button);
  gtk_widget_show(button);
  
  gtk_signal_connect(GTK_OBJECT(button),"clicked",
      GTK_SIGNAL_FUNC(hide_about_cb),NULL);

  return about;
}

#elif defined BUILD_MOTIF

#include<Xm/Xm.h>
#include<Xm/Form.h>
#include<Xm/Label.h>
#include<Xm/PushB.h>

void hide_about_cb(Widget w,XtPointer app,XtPointer call){
  XtUnmanageChild(appdata.about);
}

Widget create_about_dialog(Widget parent){
  Widget about,picture,version,copyright,form,button;
  char version_str[64];
  Arg args[10];
  Cardinal n;
  Dimension d;

  n=0;
  XtSetArg(args[n],XmNtitle,"About AxY FTP");n++;
  XtSetArg(args[n],XmNdialogStyle,XmDIALOG_APPLICATION_MODAL);n++;
  XtSetArg(args[n],XmNverticalSpacing,6);n++;
  XtSetArg(args[n],XmNhorizontalSpacing,6);n++;
  XtSetArg(args[n],XmNnoResize,True);n++;
  about=XmCreateFormDialog(parent,"about",args,n);

  n=0;
  XtSetArg(args[n],XmNtopAttachment,XmATTACH_FORM);n++;
  XtSetArg(args[n],XmNleftAttachment,XmATTACH_FORM);n++;
  XtSetArg(args[n],XmNbottomAttachment,XmATTACH_FORM);n++;
  XtSetArg(args[n],XmNrightAttachment,XmATTACH_NONE);n++;
  XtSetArg(args[n],XmNlabelType,XmPIXMAP);n++;
  if(portret){
    XtSetArg(args[n],XmNlabelPixmap,portret);n++;
  }
  picture=XmCreateLabel(about,"picture",args,n);n++;
  XtManageChild(picture);

  n=0;
  XtSetArg(args[n],XmNtopAttachment,XmATTACH_FORM);n++;
  XtSetArg(args[n],XmNtopOffset,20);n++;
  XtSetArg(args[n],XmNleftAttachment,XmATTACH_WIDGET);n++;
  XtSetArg(args[n],XmNleftWidget,picture);n++;
  XtSetArg(args[n],XmNbottomAttachment,XmATTACH_NONE);n++;
  XtSetArg(args[n],XmNrightAttachment,XmATTACH_FORM);n++;
  XtSetArg(args[n],XmNalignment,XmALIGNMENT_CENTER);n++;
  sprintf(version_str,"AxY FTP  Motif %d.%d version %d.%d.%d",
   XmVERSION,XmREVISION,AXYFTP_MAJOR,AXYFTP_MINOR,AXYFTP_MICRO);
  version=XmCreateLabel(about,version_str,args,n);n++;
  XtManageChild(version);

  n=0;
  XtSetArg(args[n],XmNtopAttachment,XmATTACH_WIDGET);n++;
  XtSetArg(args[n],XmNtopWidget,version);n++;
  XtSetArg(args[n],XmNtopOffset,20);n++;
  XtSetArg(args[n],XmNleftAttachment,XmATTACH_WIDGET);n++;
  XtSetArg(args[n],XmNleftWidget,picture);n++;
  XtSetArg(args[n],XmNbottomAttachment,XmATTACH_NONE);n++;
  XtSetArg(args[n],XmNrightAttachment,XmATTACH_FORM);n++;
  XtSetArg(args[n],XmNalignment,XmALIGNMENT_CENTER);n++;
  copyright=XmCreateLabel(about,"Copyright (c) 1999  Alexander Yukhimets."
      " All rights reserved.",args,n);n++;
  XtManageChild(copyright);

  n=0;
  XtSetArg(args[n],XmNtopAttachment,XmATTACH_WIDGET);n++;
  XtSetArg(args[n],XmNtopWidget,copyright);n++;
  XtSetArg(args[n],XmNleftAttachment,XmATTACH_WIDGET);n++;
  XtSetArg(args[n],XmNleftWidget,picture);n++;
  XtSetArg(args[n],XmNbottomAttachment,XmATTACH_FORM);n++;
  XtSetArg(args[n],XmNrightAttachment,XmATTACH_FORM);n++;
  form=XmCreateForm(about,"form",args,n);
  XtManageChild(form);
  
  n=0;
  XtSetArg(args[n],XmNtopAttachment,XmATTACH_NONE);n++;
  XtSetArg(args[n],XmNleftAttachment,XmATTACH_POSITION);n++;
  XtSetArg(args[n],XmNleftPosition,50);n++;
  XtSetArg(args[n],XmNbottomAttachment,XmATTACH_FORM);n++;
  XtSetArg(args[n],XmNrightAttachment,XmATTACH_NONE);n++;
  button=XmCreatePushButton(form," OK ",args,n);n++;
  XtManageChild(button);

  XtVaGetValues(button,XmNwidth,&d,NULL);
  XtVaSetValues(button,XmNleftOffset,-d/2,NULL);


  XtAddCallback(button,XmNactivateCallback,hide_about_cb,NULL);

  return about;
}

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


syntax highlighted by Code2HTML, v. 0.9.1