00001 /* AbiWord 00002 * Copyright (C) 1998 AbiSource, Inc. 00003 * 00004 * This program is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU General Public License 00006 * as published by the Free Software Foundation; either version 2 00007 * of the License, or (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with this program; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 00017 * 02110-1301 USA. 00018 */ 00019 00020 #ifndef AP_UnixDialog_Columns_H 00021 #define AP_UnixDialog_Columns_H 00022 00023 #include "ap_Dialog_Columns.h" 00024 00025 #include "ut_types.h" 00026 #include "ut_string.h" 00027 00028 00029 class GR_UnixCairoGraphics; 00030 /***************************************************************** 00031 ****************************************************************** 00032 ** Here we begin a little CPP magic to construct a table of 00033 ** the icon names and pointer to the data. 00034 ****************************************************************** 00035 *****************************************************************/ 00036 00037 // Some convience functions to make Abi's pixmaps easily available to unix 00038 // dialogs 00039 00040 bool findIconDataByName(const char * szName, const char *** pIconData, UT_uint32 * pSizeofData) ; 00041 00042 bool label_button_with_abi_pixmap( GtkWidget * button, const char * szIconName); 00043 00044 00045 //---------------------------------------------------------------- 00046 00047 class XAP_UnixFrame; 00048 00049 /*****************************************************************/ 00050 00051 class AP_UnixDialog_Columns: public AP_Dialog_Columns 00052 { 00053 public: 00054 AP_UnixDialog_Columns(XAP_DialogFactory * pDlgFactory, XAP_Dialog_Id id); 00055 virtual ~AP_UnixDialog_Columns(void); 00056 00057 virtual void runModal(XAP_Frame * pFrame); 00058 virtual void enableLineBetweenControl(bool bState = true); 00059 00060 static XAP_Dialog * static_constructor(XAP_DialogFactory *, XAP_Dialog_Id id); 00061 00062 // callbacks can fire these events 00063 void doSpaceAfterEntry(void); 00064 void doMaxHeightEntry(void); 00065 void doHeightSpin(void); 00066 void doSpaceAfterSpin(void); 00067 void checkLineBetween(void); 00068 void readSpin(void); 00069 void event_Toggle( UT_uint32 icolumns); 00070 void event_previewExposed(void); 00071 virtual void event_OK(void); 00072 virtual void event_Cancel(void); 00073 00074 protected: 00075 00076 typedef enum 00077 { 00078 BUTTON_OK = GTK_RESPONSE_OK, 00079 BUTTON_CANCEL = GTK_RESPONSE_CANCEL 00080 } ResponseId ; 00081 00082 // private construction functions 00083 virtual GtkWidget * _constructWindow(void); 00084 void _constructWindowContents( GtkWidget * windowColumns); 00085 void _populateWindowData(void); 00086 void _storeWindowData(void); 00087 void _connectsignals(void); 00088 00089 GR_UnixCairoGraphics * m_pPreviewWidget; 00090 00091 // pointers to widgets we need to query/set 00092 GtkWidget * m_windowMain; 00093 00094 GtkWidget * m_wlineBetween; 00095 GtkWidget * m_wtoggleOne; 00096 GtkWidget * m_wtoggleTwo; 00097 GtkWidget * m_wtoggleThree; 00098 GtkWidget * m_wpreviewArea; 00099 GtkWidget * m_wSpin; 00100 00101 guint m_oneHandlerID; 00102 guint m_twoHandlerID; 00103 guint m_threeHandlerID; 00104 guint m_spinHandlerID; 00105 UT_sint32 m_iSpaceAfter; 00106 guint m_iSpaceAfterID; 00107 GtkWidget * m_wSpaceAfterSpin; 00108 GtkWidget * m_wSpaceAfterEntry; 00109 GtkAdjustment * m_oSpaceAfter_adj; 00110 UT_sint32 m_iMaxColumnHeight; 00111 guint m_iMaxColumnHeightID; 00112 GtkWidget * m_wMaxColumnHeightSpin; 00113 GtkWidget * m_wMaxColumnHeightEntry; 00114 GtkAdjustment * m_oSpinSize_adj; 00115 UT_sint32 m_iSizeHeight; 00116 GtkWidget * m_checkOrder; 00117 }; 00118 00119 #endif /* AP_UnixDialog_Columns_H */ 00120 00121 00122 00123 00124 00125