X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fxforms%2FFormGraphics.h;h=6c42fbbab810c57cd9d884bdd1a6eb8d0065abc5;hb=eba67bc3120dc301bf193c3f3b570f51f00a4654;hp=d554b25468c0685b5485c0e03769714e617737d9;hpb=9062ce972e562477eb64c294769747ebf386fa6c;p=lyx.git diff --git a/src/frontends/xforms/FormGraphics.h b/src/frontends/xforms/FormGraphics.h index d554b25468..6c42fbbab8 100644 --- a/src/frontends/xforms/FormGraphics.h +++ b/src/frontends/xforms/FormGraphics.h @@ -10,8 +10,6 @@ * Copyright 1995 Matthias Ettrich * Copyright 1995-2000 The LyX Team. * - * This file Copyright 2000 - * Baruch Even * ====================================================== */ @@ -19,43 +17,29 @@ #define FORMGRAPHICS_H #include "LString.h" -#include "frontends/DialogBase.h" #include "RadioButtonGroup.h" -#include "support/utility.hpp" +#include "ButtonPolicies.h" +#include "FormInset.h" #ifdef __GNUG__ #pragma interface #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, public noncopyable { +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: /// The maximum digits for the image width (cm, inch, percent) @@ -78,43 +62,42 @@ private: /// FILENAME_MAXCHARS = 1024 }; + /// + enum State { + /// + CHECKINPUT, + /// + BROWSE, + /// + ADVANCEDINPUT + }; - /// 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(); + /// 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(); - /// Apply the changes to the inset. - void apply(); + /// 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); /// 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. */ @@ -125,13 +108,6 @@ 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; };