XTextProperty tp;
tp.value = (unsigned char*)"Ibex";
- tp.nitems = 3;
+ tp.nitems = 4;
tp.encoding = XA_STRING;
tp.format = 8;
XSetTextProperty(display, (*((Window*)window)), &tp, XA_WM_CLASS);
} else if (e->type == ButtonPress) {
XButtonEvent* xbe = (XButtonEvent*)(e);
+ switch(xbe->button) {
+ case 4: VScroll((jfloat)-1.0); return;
+ case 5: VScroll((jfloat)1.0); return;
+ case 6: HScroll((jfloat)-1.0); return;
+ case 7: HScroll((jfloat)1.0); return;
+ }
if (xbe->button == 2) xbe->button = 3;
else if (xbe->button == 3) xbe->button = 2;
Press(xbe->button);
// FIXME: don't know why (True, False) is the best solution...
if(XmuLookupStandardColormap(display, screen_num, visual->visualid, colorDepth, XA_RGB_BEST_MAP, True, False) == 0)
org::ibex::Platform::criticalAbort(JvNewStringLatin1("ERROR: XmuLookupStandardColormap failed"));
-
XStandardColormap* best_map_info = NULL;
int count;
if (XGetRGBColormaps(display, RootWindow(display, screen_num), &best_map_info, &count, XA_RGB_BEST_MAP) == 0)
org::ibex::util::Log::info(this->getClass(), JvNewStringLatin1(buf));
}
-
+#include "WINGs/WINGs.h"
+jstring org::ibex::plat::X11::_fileDialog(jstring suggestedFileName, jboolean write) {
+ int argc = 1;
+ char* argv[2];
+ argv[0] = "Ibex";
+ argv[1] = NULL;
+ // FIXME see WINGs/Tests/filedialog.c for more info... need an icon
+ WMInitializeApplication("Ibex", &argc, argv);
+ WMScreen *scr = WMCreateSimpleApplicationScreen(display);
+ int len = min(1024, JvGetStringUTFLength(suggestedFileName));
+ char buf[len + 1];
+ JvGetStringUTFRegion(suggestedFileName, 0, len, buf);
+ buf[len] = '\0';
+ if (write) {
+ WMSavePanel *sPanel;
+ sPanel = WMGetSavePanel(scr);
+ if (WMRunModalFilePanelForDirectory(sPanel, NULL, buf, /*title*/ NULL, NULL) != True) return NULL;
+ return JvNewStringLatin1(WMGetFilePanelFileName(sPanel));
+ } else {
+ WMOpenPanel *oPanel;
+ oPanel = WMGetOpenPanel(scr);
+ if (WMRunModalFilePanelForDirectory(oPanel, NULL, buf, /*title*/ NULL, NULL) != True) return NULL;
+ return JvNewStringLatin1(WMGetFilePanelFileName(oPanel));
+ }
+ return NULL;
+}
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
}
}
+