X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Fplat%2FX11.cc;h=53e20dee7aaf4b134b2178e21bdca3dc8d82a2c3;hb=a6c4f7b784acf2269c33188982b0d479cc11a0f4;hp=81e61fbf26d5746452b1ee9de030ec525504fb6c;hpb=3591b88b94a6bb378af3d4abe6eb5233ce583104;p=org.ibex.core.git diff --git a/src/org/ibex/plat/X11.cc b/src/org/ibex/plat/X11.cc index 81e61fb..53e20de 100644 --- a/src/org/ibex/plat/X11.cc +++ b/src/org/ibex/plat/X11.cc @@ -397,7 +397,7 @@ void org::ibex::plat::X11$X11Surface::natInit() { 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); @@ -526,6 +526,12 @@ void org::ibex::plat::X11$X11Surface::dispatchEvent(gnu::gcj::RawData* ev) { } 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); @@ -763,6 +769,34 @@ void org::ibex::plat::X11::natInit() { org::ibex::util::Log::info(this->getClass(), JvNewStringLatin1(buf)); } +//#include "WINGs/WINGs.h" +jstring org::ibex::plat::X11::_fileDialog(jstring suggestedFileName, jboolean write) { +#ifdef asfasdfasf + 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)); + } +#endif + return NULL; +} //////////////////////////////////////////////////////////////////////////////