X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fxforms%2FFormGraphics.h;h=6c42fbbab810c57cd9d884bdd1a6eb8d0065abc5;hb=eba67bc3120dc301bf193c3f3b570f51f00a4654;hp=4cba3e2ba6109ec186c51ddd23dafc8eaba4980e;hpb=9ab27bcd7e601aedc6253808007105f4e4545661;p=lyx.git diff --git a/src/frontends/xforms/FormGraphics.h b/src/frontends/xforms/FormGraphics.h index 4cba3e2ba6..6c42fbbab8 100644 --- a/src/frontends/xforms/FormGraphics.h +++ b/src/frontends/xforms/FormGraphics.h @@ -10,127 +10,94 @@ * Copyright 1995 Matthias Ettrich * Copyright 1995-2000 The LyX Team. * - * This file Copyright 2000 - * Baruch Even * ====================================================== */ #ifndef FORMGRAPHICS_H #define FORMGRAPHICS_H -#include - #include "LString.h" -#include "frontends/DialogBase.h" -//#include "form_graphics.h" #include "RadioButtonGroup.h" +#include "ButtonPolicies.h" +#include "FormInset.h" #ifdef __GNUG__ #pragma interface -#endif +#endif -class Dialogs; -// same arguement as in Dialogs.h s/LyX/UI/ -class LyXView; +// Forward declarations for classes we use only as pointers. class InsetGraphics; struct FD_form_graphics; /** This class provides an XForms implementation of the FormGraphics Dialog. + * + * @Author Baruch Even */ -class FormGraphics: public DialogBase { +class FormGraphics : public FormInset { public: /// #FormGraphics x(LyXFunc ..., Dialogs ...);# FormGraphics(LyXView *, Dialogs *); /// ~FormGraphics(); - /// - static int WMHideCB(FL_FORM *, void *); - /// - static void OKCB(FL_OBJECT *, long); - /// - static void ApplyCB(FL_OBJECT *, long); - /// - static void CancelCB(FL_OBJECT *, long); - /// - static void BrowseCB(FL_OBJECT *, long); - /// - static void AdvancedOptionsCB(FL_OBJECT *, long); - /// - static void InputCB(FL_OBJECT *, long); private: - /// - FormGraphics() - : widthButtons(5), heightButtons(4), displayButtons(4) {} - // - FormGraphics(FormGraphics const &) : DialogBase() {} - /// The maximum digits for the image width (cm, inch, percent) enum { - /// - WIDTH_MAXDIGITS = 3 - }; + /// + WIDTH_MAXDIGITS = 3 + }; /// The maximum digits for the image height (cm, inch, percent) enum { - /// - HEIGHT_MAXDIGITS = 3 + /// + HEIGHT_MAXDIGITS = 3 }; /// The maximum characters in the rotation angle (minus sign and 3 digits) enum { - /// - ROTATE_MAXCHARS = 4 + /// + ROTATE_MAXCHARS = 4 }; /// The maximum characters in a filename. enum { + /// + FILENAME_MAXCHARS = 1024 + }; + /// + enum State { + /// + CHECKINPUT, /// - FILENAME_MAXCHARS = 1024 + BROWSE, + /// + ADVANCEDINPUT }; - - /**@name Slot Methods */ - //@{ - /// Save the active inset and show the dialog. - void showDialog(InsetGraphics * inset); - /// Create the dialog if necessary, update it and display it. - void show(); - /// Hide the dialog. - void hide(); - /// Update the dialog - void update(); - //@} - /**@name Callback methods */ - //@{ - /// Apply the changes to the inset. - void apply(); + /// Build the dialog + virtual void build(); + /// Filter the inputs + virtual bool input( FL_OBJECT *, long ); + /// Update the popup. + virtual void update(); + /// Apply from popup + virtual void apply(); + + /// Disconnect signals. Also perform any necessary housekeeping. + virtual void disconnect(); + + /// Save the active inset and show the dialog. + void showDialog(InsetGraphics *); /// Verify that the input is correct. If not disable ok/apply buttons. - void input(); + bool checkInput(); /// Open the file browse dialog to select an image file. void browse(); - //@} - - /// Build the dialog - void build(); - /// + + /// Pointer to the actual instantiation of the xform's form + virtual FL_FORM * form() const; + /// Fdesign generated method FD_form_graphics * build_graphics(); - /// Explicitly free the dialog. - void free(); - /// Display a file browser dialog and return the file chosen. - string browseFile(string const & filename); - /**@name Data */ - //@{ /// Real GUI implementation. FD_form_graphics * dialog_; - /** Which LyXFunc do we use? - We could modify Dialogs to have a visible LyXFunc* instead and - save a couple of bytes per dialog. - */ - LyXView * lv_; - /** Which Dialogs do we belong to? - Used so we can get at the signals we have to connect to. - */ - Dialogs * d_; /** Which Inset do we belong to? Used to set and update data to/from the inset. */ @@ -141,17 +108,8 @@ private: RadioButtonGroup heightButtons; /// RadioButtonGroup displayButtons; - - /// Inset Hide connection, connected to the calling inset hide signal. - Connection ih_; - /// Hide connection. - Connection h_; - /// Update connection. - Connection u_; /// Last used figure path string last_image_path; - //@} - }; -#endif +#endif