X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fxforms%2FFormGraphics.h;h=97364f34720de1e8ef0637b6edbfb914b9c32202;hb=d5443737342903de489d527802cd2cdd38987d74;hp=88abccabce7410c569be8421c513525880999a66;hpb=da003742d9fbc051024e89241d5796e6403aded9;p=lyx.git diff --git a/src/frontends/xforms/FormGraphics.h b/src/frontends/xforms/FormGraphics.h index 88abccabce..97364f3472 100644 --- a/src/frontends/xforms/FormGraphics.h +++ b/src/frontends/xforms/FormGraphics.h @@ -1,139 +1,70 @@ // -*- C++ -*- -/* FormGraphics.h - * FormGraphics Interface Class +/** + * \file FormGraphics.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * This file is part of - * ====================================================== + * \author Baruch Even + * \author Herbert Voß * - * LyX, The Document Processor - * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-2000 The LyX Team. - * - * This file Copyright 2000 - * Baruch Even - * ====================================================== + * Full author contact details are available in file CREDITS. */ #ifndef FORMGRAPHICS_H #define FORMGRAPHICS_H -#include "LString.h" -#include "frontends/DialogBase.h" -#include "RadioButtonGroup.h" -#include +#include "FormDialogView.h" +#include +#include -#ifdef __GNUG__ -#pragma interface -#endif +namespace lyx { +namespace frontend { -class Dialogs; -// same arguement as in Dialogs.h s/LyX/UI/ -class LyXView; -class InsetGraphics; +class CheckedPath; +class ControlGraphics; +struct FD_graphics; +struct FD_graphics_file; +struct FD_graphics_bbox; +struct FD_graphics_extra; -struct FD_form_graphics; - -/** This class provides an XForms implementation of the FormGraphics Dialog. +/** This class provides an XForms implementation of the Graphics Dialog. */ -class FormGraphics: public DialogBase, public noncopyable { +class FormGraphics + : public FormController > { 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); - + FormGraphics(Dialog &); private: - /// The maximum digits for the image width (cm, inch, percent) - enum { - /// - WIDTH_MAXDIGITS = 3 - }; - /// The maximum digits for the image height (cm, inch, percent) - enum { - /// - HEIGHT_MAXDIGITS = 3 - }; - /// The maximum characters in the rotation angle (minus sign and 3 digits) - enum { - /// - ROTATE_MAXCHARS = 4 - }; - /// The maximum characters in a filename. - enum { - /// - FILENAME_MAXCHARS = 1024 - }; - /// 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(); + /** Redraw the form (on receipt of a Signal indicating, for example, + that the xforms colours have been re-mapped). */ + virtual void redraw(); + /// Set the Params variable for the Controller. + virtual void apply(); + /// Build the dialog. + virtual void build(); + /// Update dialog before/whilst showing it. + virtual void update(); + /// Update the BoundingBox info. + void updateBB(std::string const & filename, std::string const & bb_inset); + /// Filter the inputs on callback from xforms + virtual ButtonPolicy::SMInput input(FL_OBJECT *, long); - /// Apply the changes to the inset. - void apply(); - /// Verify that the input is correct. If not disable ok/apply buttons. - void input(); - /// Open the file browse dialog to select an image file. - void browse(); - - /// Build the dialog - void build(); - /// - 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); + // Accessor to checker owned by the button controller. + CheckedPath * file_checker_; /// 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. - */ - InsetGraphics * inset_; - /// The radio buttons groups - RadioButtonGroup widthButtons; + boost::scoped_ptr file_; /// - RadioButtonGroup heightButtons; + boost::scoped_ptr bbox_; /// - RadioButtonGroup displayButtons; + boost::scoped_ptr extra_; - /// 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; + /// Store the LaTeX names for the rotation origins. + std::vector origins_; }; -#endif +} // namespace frontend +} // namespace lyx + +#endif // FORMGRAPHICS_H