21 #include <gwenhywfar/dialog_be.h> 22 #include <gwenhywfar/directory.h> 23 #include <gwenhywfar/debug.h> 32 #define FOX16_DIALOG_WIDGET_REAL 0 33 #define FOX16_DIALOG_WIDGET_CONTENT 1 35 #define FOX16_DIALOG_STRING_TITLE 0 36 #define FOX16_DIALOG_STRING_VALUE 1 61 ,m_sizeChanged(FALSE) {
73 ,m_sizeChanged(FALSE) {
82 std::list<FXIcon*>::iterator it;
92 std::list<RadioButtonGroup*>::iterator it;
152 FXDialogBox *dialogBox;
158 dialogBox->show(PLACEMENT_OWNER);
159 rv=dialogBox->execute();
194 if (value<f->getNumItems()) {
195 f->setCurrentItem(value, doSignal?TRUE:FALSE);
221 f->setCheck((value==0)?FALSE:TRUE, doSignal?TRUE:FALSE);
238 f->setProgress(value);
305 fi=f->getFirstItem();
306 while(fi && i<value) {
311 f->setCurrentItem(fi, doSignal?TRUE:FALSE);
319 f->setHeaderSize(index, value);
327 f->setListStyle(FOLDINGLIST_BROWSESELECT);
330 f->setListStyle(FOLDINGLIST_EXTENDEDSELECT);
345 ti->setSelected((value==0)?FALSE:TRUE);
356 for (i=0; i<f->getNumHeaders(); i++) {
390 for (i=0; i<f->getNumHeaders(); i++) {
420 f->setCheck((value==0)?FALSE:TRUE, doSignal?TRUE:FALSE);
437 f->setCurrent(value, doSignal?TRUE:FALSE);
454 f->setCurrent(value, doSignal?TRUE:FALSE);
491 f->resize(value, f->getHeight());
496 f->resize(f->getWidth(), value);
540 DBG_WARN(0,
"Function is not appropriate for this type of widget (%s)",
564 return f->getCurrentItem();
567 return f->getNumItems();
583 return (f->getCheck()==TRUE)?1:0;
599 return f->getProgress();
605 return f->getTotal();
622 return f->getValue();
655 fi=f->getCurrentItem();
662 while( (ti=ti->getPrev()) )
669 return f->getNumItems();
672 return f->getHeaderSize(index);
675 switch(f->getListStyle()) {
676 case FOLDINGLIST_BROWSESELECT:
678 case FOLDINGLIST_EXTENDEDSELECT:
690 ti=f->getFirstItem();
697 return (ti->isSelected()==TRUE)?1:0;
704 for (i=0; i<f->getNumHeaders(); i++) {
736 return (f->getCheck()==TRUE)?1:0;
753 return f->getCurrent();
770 return f->getCurrent();
807 return f->getWidth();
810 return f->getHeight();
813 return (f->isEnabled()==TRUE)?1:0;
816 return (f->hasFocus())?1:0;
839 DBG_WARN(0,
"Function is not appropriate for this type of widget (%s)",
855 if (value && *value) {
922 f->setTipText(htmlValue);
939 f->setText(value, doSignal?TRUE:FALSE);
943 f->setTipText(htmlValue);
960 f->setText(strValue);
964 f->setTipText(htmlValue);
985 f->setTipText(htmlValue);
991 f->appendItem(strValue);
1017 f->setText(strValue);
1033 f->setText(strValue);
1037 f->setTipText(htmlValue);
1054 f->setText(strValue);
1058 f->setTipText(htmlValue);
1078 f2->setText(strValue);
1082 f2->setTipText(htmlValue);
1099 f->setTitle(strValue);
1118 f->getHeader()->clearItems();
1120 while(!(t=str.section(
'\t',n)).empty()) {
1121 f->appendHeader(t,
NULL, 20);
1127 f->appendItem(
NULL, strValue);
1148 f->setTipText(htmlValue);
1198 DBG_WARN(0,
"Function is not appropriate for this type of widget (%s)",
1208 const char *defaultValue) {
1213 return defaultValue;
1215 return defaultValue;
1227 return defaultValue;
1249 return defaultValue;
1271 return defaultValue;
1293 return defaultValue;
1315 return defaultValue;
1335 if (index<f->getNumItems()) {
1336 str=f->getItem(index);
1338 return defaultValue;
1346 return defaultValue;
1365 return defaultValue;
1387 return defaultValue;
1409 return defaultValue;
1434 return defaultValue;
1457 return defaultValue;
1483 for (i=0; i<fh->getNumItems(); i++) {
1486 str+=fh->getItemText(i);
1491 return defaultValue;
1498 fi=f->getFirstItem();
1509 return defaultValue;
1515 return defaultValue;
1520 return defaultValue;
1573 DBG_WARN(0,
"Function is not appropriate for this type of widget (%s)",
1575 return defaultValue;
1586 FXDialogBox *dialogBox;
1591 std::list<RadioButtonGroup*>::iterator it;
1595 if ((*it)->getDataTarget()==sender) {
1617 wname?wname:
"(unnamed)",
1665 dialogBox->getApp()->stopModal(dialogBox, 1);
1668 dialogBox->getApp()->stopModal(dialogBox, 0);
1679 FXDialogBox *dialogBox;
1728 dialogBox->getApp()->stopModal(dialogBox, 1);
1732 dialogBox->getApp()->stopModal(dialogBox, 0);
1756 if (((FXEvent*)ptr)->code==KEY_Return || ((FXEvent*)ptr)->code==KEY_KP_Enter) {
1804 if (((FXEvent*)ptr)->code==KEY_Return || ((FXEvent*)ptr)->code==KEY_KP_Enter) {
1844 GWEN_WIDGET_TREE *wtree;
1853 w=GWEN_Widget_Tree_GetFirst(wtree);
1874 DBG_INFO(0,
"Error initializing dialog: %d", rv);
1879 xw->resize(xw->getDefaultWidth(), xw->getDefaultHeight());
1896 FXComposite *parentComposite=
NULL;
1897 FXWindow *wChild=
NULL;
1898 FXWindow *wContent=
NULL;
1914 parentWidget=GWEN_Widget_Tree_GetParent(w);
1918 parentComposite=
dynamic_cast<FXComposite*
>(parentWindow);
1919 if (parentComposite==
NULL) {
1933 opts|=LAYOUT_FILL_X | LAYOUT_FILL_COLUMN;
1935 opts|=LAYOUT_FILL_Y;
1937 opts|=DECOR_SHRINKABLE;
1939 opts|=DECOR_STRETCHABLE;
1941 opts|=DECOR_MINIMIZE;
1943 opts|=DECOR_MAXIMIZE;
1949 opts|=PACK_UNIFORM_WIDTH;
1951 opts|=PACK_UNIFORM_HEIGHT;
1955 opts|=JUSTIFY_RIGHT;
1959 opts|=JUSTIFY_BOTTOM;
1961 opts|=JUSTIFY_CENTER_X;
1963 opts|=JUSTIFY_CENTER_Y;
2012 opts|=BUTTON_DEFAULT | BUTTON_INITIAL | BUTTON_NORMAL;
2014 opts|=BUTTON_NORMAL;
2030 opts|=TEXTFIELD_PASSWD;
2032 opts|=TEXTFIELD_READONLY;
2033 wChild=
new FXTextField(parentComposite,
2037 opts | TEXTFIELD_NORMAL | TEXTFIELD_ENTER_ONLY);
2044 opts|=TEXT_READONLY;
2045 f=
new FXText(parentComposite,
2048 opts | HSCROLLING_OFF);
2050 f->setVisibleColumns(cols);
2052 f->setVisibleRows(rows);
2061 opts | HSCROLLING_OFF);
2068 opts|=COMBOBOX_STATIC;
2080 std::list<RadioButtonGroup*>::iterator it;
2086 if ((*it)->getGroupId()==groupId) {
2095 rb=
new FXRadioButton(parentComposite,
2099 opts | RADIOBUTTON_NORMAL);
2106 wChild=
new FXProgressBar(parentComposite,
2109 opts | PROGRESSBAR_NORMAL | PROGRESSBAR_PERCENTAGE);
2113 wChild=
new FXGroupBox(parentComposite,
2115 opts | GROUPBOX_NORMAL | FRAME_LINE);
2119 wChild=
new FXSpring(parentComposite, opts | LAYOUT_FILL_X);
2123 wChild=
new FXSpring(parentComposite, opts | LAYOUT_FILL_Y);
2127 wChild=
new FXHorizontalFrame(parentComposite, opts,
2128 0, 0, 0, 0, 0, 0, 0, 0);
2132 wChild=
new FXVerticalFrame(parentComposite, opts,
2133 0, 0, 0, 0, 0, 0, 0, 0);
2139 name?name:
"(unnamed)");
2143 wChild=
new FXMatrix(parentComposite, cols,
2144 opts | MATRIX_BY_COLUMNS,
2145 0, 0, 0, 0, 0, 0, 0, 0);
2147 wChild=
new FXMatrix(parentComposite, rows,
2148 opts | MATRIX_BY_ROWS,
2149 0, 0, 0, 0, 0, 0, 0, 0);
2156 opts | FRAME_SUNKEN|FRAME_THICK | LISTBOX_NORMAL);
2161 wChild=
new FXDialogBox(parentWindow,
2162 name?FXString(name):FXString(
""),
2163 opts | DECOR_TITLE | DECOR_BORDER);
2165 wChild=
new FXDialogBox(FXApp::instance(),
2166 name?FXString(name):FXString(
""),
2167 opts | DECOR_TITLE | DECOR_BORDER);
2171 wChild=
new FXTabBook(parentComposite,
2174 opts | TABBOOK_NORMAL);
2178 if (parentWidget==
NULL) {
2183 FXTabBook *tbook=
dynamic_cast<FXTabBook*
>(parentWindow);
2190 wChild=
new FXVerticalFrame(tbook, opts);
2195 wChild=
new FXCheckButton(parentComposite,
2199 opts | CHECKBUTTON_NORMAL);
2205 f=
new FXScrollWindow(parentComposite, opts);
2207 wContent=f->contentWindow();
2212 wChild=
new FXSwitcher(parentComposite, opts);
2216 wChild=
new FXHorizontalSeparator(parentComposite, opts | SEPARATOR_GROOVE);
2220 wChild=
new FXVerticalSeparator(parentComposite, opts | SEPARATOR_GROOVE);
2224 wChild=
new FXSpinner(parentComposite,
2228 opts | SPIN_NORMAL);
2249 w=GWEN_Widget_Tree_GetFirstChild(w);
2253 w=GWEN_Widget_Tree_GetNext(w);
2262 FXDialogBox *dialogBox;
2265 return dialogBox->getApp()->runModalFor(dialogBox);
2271 FXDialogBox *dialogBox;
2276 dialogBox->layout();
2277 dialogBox->show(PLACEMENT_OWNER);
2285 FXDialogBox *dialogBox;
#define GWEN_WIDGET_FLAGS_DECOR_MENU
#define FOX16_DIALOG_WIDGET_CONTENT
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
struct GWEN_STRINGLISTENTRYSTRUCT GWEN_STRINGLISTENTRY
#define GWEN_WIDGET_FLAGS_DECOR_STRETCHABLE
#define GWEN_WIDGET_FLAGS_JUSTIFY_TOP
#define GWEN_ERROR_INVALID
FXDEFMAP(FOX16_GuiDialog) FOX16_GuiDialogMap[]
#define GWEN_WIDGET_FLAGS_EQUAL_WIDTH
#define GWEN_WIDGET_FLAGS_DECOR_MAXIMIZE
void makePositionVisible(FXint pos)
static FOX16_GuiDialog * getDialog(GWEN_DIALOG *dlg)
GWEN_WIDGET_TREE * GWEN_Dialog_GetWidgets(const GWEN_DIALOG *dlg)
#define GWEN_WIDGET_FLAGS_JUSTIFY_CENTERY
#define DBG_WARN(dbg_logger, format, args...)
A C++ binding for the C module GWEN_DIALOG.
#define GWEN_WIDGET_FLAGS_READONLY
FXbool getHeaderArrowDir(int c) const
void setText(const FXString &text)
Set the text for this label.
std::list< FXIcon * > m_iconList
FXString getText() const
Get the text for this label.
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
struct GWEN_DIALOG GWEN_DIALOG
#define GWEN_WIDGET_FLAGS_JUSTIFY_RIGHT
GWEN_STRINGLISTENTRY * GWEN_StringList_FirstEntry(const GWEN_STRINGLIST *sl)
const char * GWEN_StringListEntry_Data(const GWEN_STRINGLISTENTRY *se)
#define FOX16_DIALOG_STRING_TITLE
#define GWEN_WIDGET_FLAGS_EQUAL_HEIGHT
#define GWEN_WIDGET_FLAGS_DEFAULT_WIDGET
GWEN_WIDGET * GWEN_Dialog_FindWidgetByImplData(const GWEN_DIALOG *dlg, int index, const void *ptr)
virtual int getIntProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, int defaultValue)
#define DBG_DEBUG(dbg_logger, format, args...)
int GWEN_Dialog_EmitSignalToAll(GWEN_DIALOG *dlg, GWEN_DIALOG_EVENTTYPE t, const char *sender)
FXDialogBox * _mainWidget
void setText(const FXString &text)
Set the text for this label.
#define GWEN_WIDGET_FLAGS_PASSWORD
GWENHYWFAR_API int GWEN_Directory_FindFileInPaths(const GWEN_STRINGLIST *paths, const char *filePath, GWEN_BUFFER *fbuf)
GWEN_STRINGLIST * GWEN_Dialog_GetMediaPaths(const GWEN_DIALOG *dlg)
#define GWEN_WIDGET_FLAGS_DECOR_CLOSE
#define FOX16_DIALOG_STRING_VALUE
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
#define GWEN_ERROR_GENERIC
#define GWEN_WIDGET_FLAGS_JUSTIFY_BOTTOM
bool setup(FXWindow *parentWindow)
#define GWEN_WIDGET_FLAGS_NO_WORDWRAP
long onSelKeyPress(FXObject *sender, FXSelector sel, void *ptr)
long onSelChanged(FXObject *sender, FXSelector sel, void *ptr)
FXIMPLEMENT(FOX16_GuiSortingList, FXFoldingList, FOX16_GuiSortingListMap, ARRAYNUMBER(FOX16_GuiSortingListMap)) FOX16_GuiSortingList
#define GWEN_WIDGET_FLAGS_FILLY
void GWEN_Buffer_free(GWEN_BUFFER *bf)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
FXWindow * setupTree(FXWindow *parentWindow, GWEN_WIDGET *w)
void setMaxDefaultWidth(int i)
#define GWEN_WIDGET_FLAGS_FILLX
virtual ~FOX16_GuiDialog()
int GWEN_Dialog_EmitSignal(GWEN_DIALOG *dlg, GWEN_DIALOG_EVENTTYPE t, const char *sender)
static FOX16GUI_API FXString getRawText(const char *text)
#define DBG_ERROR(dbg_logger, format, args...)
virtual const char * getCharProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, const char *defaultValue)
virtual int setIntProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, int value, int doSignal)
GWEN_STRINGLISTENTRY * GWEN_StringListEntry_Next(const GWEN_STRINGLISTENTRY *se)
void setHeaderArrowDir(int c, FXbool b)
#define DBG_INFO(dbg_logger, format, args...)
std::list< RadioButtonGroup * > m_radioGroups
void addMediaPath(const char *s)
long onSelKeyRelease(FXObject *sender, FXSelector sel, void *ptr)
#define GWEN_WIDGET_FLAGS_JUSTIFY_LEFT
#define FOX16_DIALOG_WIDGET_REAL
virtual void sortByColumn(int c, bool up)
virtual int setCharProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, const char *value, int doSignal)
#define GWEN_WIDGET_FLAGS_JUSTIFY_CENTERX
FXIcon * getIcon(const char *fileName)
static CPPGUI_API CppDialog * getDialog(GWEN_DIALOG *dlg)
FXFoldingItem * getItem(int idx)
#define GWEN_WIDGET_FLAGS_DECOR_SHRINKABLE
FXIconSource * m_iconSource
static FOX16GUI_API FXString getHtmlText(const char *text)
#define GWEN_WIDGET_FLAGS_DECOR_MINIMIZE
long onSelCommand(FXObject *sender, FXSelector sel, void *ptr)
FXString getText() const
Get the text for this label.