Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef AP_DIALOG_FORMATFRAME_H
00023 #define AP_DIALOG_FORMATFRAME_H
00024
00025 #include <string>
00026
00027 #include "ut_types.h"
00028 #include "ut_misc.h"
00029 #include "ut_PropVector.h"
00030 #include "xap_Frame.h"
00031 #include "xap_Dialog.h"
00032 #include "xav_View.h"
00033 #include "pt_Types.h"
00034 #include "xap_Preview.h"
00035 #include "fv_View.h"
00036 #include "ie_imp.h"
00037 #include "ie_impGraphic.h"
00038 #include "ie_exp.h"
00039 #include "ie_types.h"
00040 #include "fg_Graphic.h"
00041 #include "xap_Dlg_FileOpenSaveAs.h"
00042 #define FORMAT_FRAME_NUMTHICKNESS 9
00043
00044 class UT_Timer;
00045 class XAP_Frame;
00046 class fp_TableContainer;
00047 class AP_Dialog_FormatFrame;
00048
00049 class ABI_EXPORT AP_FormatFrame_preview_drawer
00050 {
00051 public:
00052
00053 void draw(GR_Graphics *gc, UT_Rect &rect);
00054 };
00055
00056 class ABI_EXPORT AP_FormatFrame_preview : public XAP_Preview
00057 {
00058 public:
00059
00060 AP_FormatFrame_preview(GR_Graphics * gc, AP_Dialog_FormatFrame * pFormatFrame);
00061 virtual ~AP_FormatFrame_preview(void);
00062
00063
00064 void draw(const UT_Rect *clip=NULL);
00065 GR_Graphics * getGraphics(void) const { return m_gc;}
00066
00067
00068
00069
00070
00071
00072 private:
00073 AP_FormatFrame_preview_drawer m_previewDrawer;
00074 AP_Dialog_FormatFrame * m_pFormatFrame;
00075 protected:
00076
00077 };
00078
00079 class ABI_EXPORT AP_Dialog_FormatFrame : public XAP_Dialog_Modeless
00080 {
00081 public:
00082 AP_Dialog_FormatFrame(XAP_DialogFactory * pDlgFactory, XAP_Dialog_Id id);
00083 virtual ~AP_Dialog_FormatFrame(void);
00084
00085 virtual void runModeless(XAP_Frame * pFrame) = 0;
00086
00087 typedef enum { a_OK, a_CLOSE } tAnswer;
00088 typedef enum { toggle_left, toggle_right, toggle_top, toggle_bottom } toggle_button;
00089
00090 AP_Dialog_FormatFrame::tAnswer getAnswer(void) const;
00091 virtual void startUpdater(void);
00092 virtual void stopUpdater(void);
00093 static void autoUpdateMC(UT_Worker * pTimer);
00094
00095 virtual void setSensitivity(bool bSens) = 0;
00096 virtual void setActiveFrame(XAP_Frame *pFrame);
00097 void ConstructWindowName(void);
00098 void event_update(void);
00099 void finalize(void);
00100
00101 void setWrapping(bool bWrap);
00102 bool getWrapping(void) const { return m_bSetWrapping; }
00103
00104 void setAllSensitivities(void);
00105 void setCurFrameProps(void);
00106 void applyChanges(void);
00107 void toggleLineType(toggle_button btn, bool enabled);
00108 void clearImage(void);
00109 void askForGraphicPathName(void);
00110 void ShowErrorBox(const std::string & sFile,
00111 UT_Error errorCode);
00112 void _createPreviewFromGC(GR_Graphics * gc,
00113 UT_uint32 width,
00114 UT_uint32 height);
00115 UT_PropVector & getPropVector() { return m_vecProps; }
00116
00117 GR_Image * getImage(void) { return m_pImage;}
00118 FG_Graphic * getGraphic(void) { return m_pGraphic;}
00119
00120 UT_RGBColor m_borderColor;
00121 UT_sint32 m_lineStyle;
00122
00123 UT_PropVector m_vecProps;
00124
00125 void setBGColor (UT_RGBColor clr);
00126
00127 const UT_RGBColor & backgroundColor () const { return m_backgroundColor; }
00128
00129 void setBorderColor (UT_RGBColor clr);
00130
00131 void setBorderColorAll (UT_RGBColor clr);
00132
00133 void setBorderColorRight (const UT_RGBColor & rgb);
00134 void setBorderColorLeft (const UT_RGBColor & rgb);
00135 void setBorderColorTop (const UT_RGBColor & rgb);
00136 void setBorderColorBottom (const UT_RGBColor & rgb);
00137
00138 const UT_RGBColor & borderColorRight () const { return m_borderColorRight; }
00139 const UT_RGBColor & borderColorLeft () const { return m_borderColorLeft; }
00140 const UT_RGBColor & borderColorTop () const { return m_borderColorTop; }
00141 const UT_RGBColor & borderColorBottom () const { return m_borderColorBottom; }
00142
00143 void setBorderLineStyleRight (UT_sint32 linestyle);
00144 void setBorderLineStyleLeft (UT_sint32 linestyle);
00145 void setBorderLineStyleTop (UT_sint32 linestyle);
00146 void setBorderLineStyleBottom (UT_sint32 linestyle);
00147
00148 UT_sint32 borderLineStyleRight () const { return m_borderLineStyleRight; }
00149 UT_sint32 borderLineStyleLeft () const { return m_borderLineStyleLeft; }
00150 UT_sint32 borderLineStyleTop () const { return m_borderLineStyleTop; }
00151 UT_sint32 borderLineStyleBottom () const { return m_borderLineStyleBottom; }
00152
00153 bool getRightToggled () const { return (m_borderLineStyleRight ? true : false); }
00154 bool getLeftToggled () const { return (m_borderLineStyleLeft ? true : false); }
00155 bool getTopToggled () const { return (m_borderLineStyleTop ? true : false); }
00156 bool getBottomToggled () const { return (m_borderLineStyleBottom ? true : false); }
00157
00158 virtual void setBorderThicknessInGUI (UT_UTF8String & sThick) = 0;
00159
00160 void setBorderThickness (const UT_UTF8String & sThick);
00161
00162 void setBorderThicknessAll (const UT_UTF8String & sThick);
00163
00164 void setBorderThicknessRight (const UT_UTF8String & sThick);
00165 void setBorderThicknessLeft (const UT_UTF8String & sThick);
00166 void setBorderThicknessTop (const UT_UTF8String & sThick);
00167 void setBorderThicknessBottom (const UT_UTF8String & sThick);
00168
00169 const UT_UTF8String & getBorderThicknessRight () const { return m_sBorderThicknessRight; }
00170 const UT_UTF8String & getBorderThicknessLeft () const { return m_sBorderThicknessLeft; }
00171 const UT_UTF8String & getBorderThicknessTop () const { return m_sBorderThicknessTop; }
00172 const UT_UTF8String & getBorderThicknessBottom () const { return m_sBorderThicknessBottom; }
00173
00174 void setBorderThicknessAll (float thickness);
00175
00176 void setBorderThicknessRight (float thickness);
00177 void setBorderThicknessLeft (float thickness);
00178 void setBorderThicknessTop (float thickness);
00179 void setBorderThicknessBottom (float thickness);
00180
00181 float borderThicknessRight () const { return m_borderThicknessRight; }
00182 float borderThicknessLeft () const { return m_borderThicknessLeft; }
00183 float borderThicknessTop () const { return m_borderThicknessTop; }
00184 float borderThicknessBottom () const { return m_borderThicknessBottom; }
00185
00186 void setPositionMode (FL_FrameFormatMode mode);
00187
00188 FL_FrameFormatMode positionMode () const { return m_iFramePositionTo; }
00189
00190 protected:
00191 AP_Dialog_FormatFrame::tAnswer m_answer;
00192 char m_WindowName[100];
00193 AP_FormatFrame_preview *m_pFormatFramePreview;
00194 AP_FormatFrame_preview_drawer m_previewDrawer;
00195 private:
00196 GR_Image * _makeImageForRaster(const std::string & name,
00197 GR_Graphics * pGraphics,
00198 const FG_Graphic * pG);
00199 bool _getToggleButtonStatus(const char * lineStyle);
00200
00201 bool m_bSettingsChanged;
00202
00203 UT_RGBColor m_backgroundColor;
00204
00205 UT_RGBColor m_borderColorRight;
00206 UT_RGBColor m_borderColorLeft;
00207 UT_RGBColor m_borderColorTop;
00208 UT_RGBColor m_borderColorBottom;
00209
00210 UT_sint32 m_borderLineStyleRight;
00211 UT_sint32 m_borderLineStyleLeft;
00212 UT_sint32 m_borderLineStyleTop;
00213 UT_sint32 m_borderLineStyleBottom;
00214
00215 float m_borderThicknessRight;
00216 float m_borderThicknessLeft;
00217 float m_borderThicknessTop;
00218 float m_borderThicknessBottom;
00219
00220 UT_UTF8String m_sBorderThickness;
00221
00222 UT_UTF8String m_sBorderThicknessRight;
00223 UT_UTF8String m_sBorderThicknessLeft;
00224 UT_UTF8String m_sBorderThicknessTop;
00225 UT_UTF8String m_sBorderThicknessBottom;
00226
00227 UT_Timer * m_pAutoUpdaterMC;
00228
00229
00230 bool m_bDestroy_says_stopupdating;
00231 bool m_bAutoUpdate_happening_now;
00232
00233 PT_DocPosition m_iOldPos;
00234 std::string m_sImagePath;
00235 IEGraphicFileType m_iGraphicType;
00236 GR_Image * m_pImage;
00237 FG_Graphic * m_pGraphic;
00238
00239 bool m_bSensitive;
00240 bool m_bSetWrapping;
00241 bool m_bLineToggled;
00242
00243 FL_FrameFormatMode m_iFramePositionTo;
00244 };
00245
00246 #endif