// //FileSystemBrowser.cpp //Copyright (c) 2017 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. #include <oz++/motif/ApplicationView.h> #include <oz++/motif/FileSystemBrowser.h> #include <oz++/motif/PushButton.h> #include <oz++/motif/TextField.h> namespace OZ { class MainView :public ApplicationView { private: SmartPtr<FileSystemBrowser> fileSystemBrowser; SmartPtr<PushButton> pushb; SmartPtr<BulletinBoard> bboard; SmartPtr<TextField> folderName; SmartPtr<TextField> fileName; void ok(Action& action) { fileSystemBrowser->popdown(); StringT<char> fname; fileSystemBrowser -> getFolderName(fname); StringT<char> name; fileSystemBrowser -> getFileName(name); printf("folderName: %s\n", (const char*)fname); folderName -> setString((const char*)fname); printf("fileName: %s\n", (const char*)name); fileName -> setString((const char*)name); } void cancel(Action& action) { fileSystemBrowser -> popdown(); } void activate(Action& action) { if (fileSystemBrowser == NULL) { Args ar; ar.reset(); ar.set(XmNwidth, 500); ar.set(XmNheight, 400); fileSystemBrowser = new FileSystemBrowser(this, "FileSystemBrowser", ar); fileSystemBrowser->okButtonCallback(XmNactivateCallback, this, (Callback)&MainView::ok, NULL); fileSystemBrowser->cancelButtonCallback(XmNactivateCallback, this, (Callback)&MainView::cancel, NULL); } fileSystemBrowser-> popup(); } public: MainView(Application& applet, const char* name, Args& args) :ApplicationView(applet, name, args) { Args ar; bboard = new BulletinBoard(this, "", ar); ar.reset(); ar.set(XmNy, 20); ar.set(XmNwidth, 200); ar.set(XmNheight, 35); pushb = new PushButton(bboard, "Show FileSystemBrowser", ar); pushb->addCallback(XmNactivateCallback, this, (Callback)&MainView::activate, NULL); ar.reset(); ar.set(XmNy, 100); ar.set(XmNwidth, 400); ar.set(XmNheight, 35); folderName = new TextField(bboard, "", ar); ar.reset(); ar.set(XmNy, 140); ar.set(XmNwidth, 400); ar.set(XmNheight, 35); fileName = new TextField(bboard, "", ar); } ~MainView() { } }; } int main(int argc, char** argv) { const char* rootFolder = "/"; if (argc == 2) { rootFolder = argv[1]; } try { const char* appclass = argv[0]; Application applet(appclass, argc, argv); Args args; args.set(XmNwidth, 600); args.set(XmNheight,200); args.set(XmNrootFolderName, rootFolder); MainView view(applet, argv[0], args); view.realize(); applet.run(); } catch (Exception& ex) { caught(ex); } return 0; } |