mainwindow.h

00001 #ifndef MAINWINDOW_H
00002 #define MAINWINDOW_H
00003 
00004 #include <gui/window.h>
00005 #include <gui/image.h>
00006 #include <util/message.h>
00007 #include <util/resources.h>
00008 #include <util/string.h>
00009 #include <gui/toolbar.h>
00010 #include <gui/menu.h>
00011 #include <gui/statusbar.h>
00012 
00013 class ContainerView;
00014 class ConnectBar;
00015 class SettingsMenu;
00016 class Server;
00017 class AppSettings;
00018 
00019 using namespace os;
00020 
00024 class MainWindow : public os::Window
00025 {
00026 public:
00027         MainWindow();
00028         ~MainWindow();
00029         void HandleMessage( os::Message* );
00030         void OpenConnection(const String& zScheme, const String& zHost, const String& nPort, const String& zUser, const String& zPassword );
00031 
00032 private:
00033         bool OkToQuit();
00034         void Layout();
00035         void SetupMenus();
00036         void SetupToolBar();
00037         void SetupStatusBar();
00038         void UpdateStatusBar(Message* update);
00039         void PositionWindows();
00040         
00041         String ConstructURL( const String& zHost, int nPort, const String& zUser, const String& zPassword );
00042         bool isValidHost(const String& zHost);
00043         bool isValidUser(const String& zUser);
00044         bool isValidPassword(const String& zPassword);
00045         bool isValidPort(int nPort);
00046                         
00047 private:
00048 
00050         os::Window* m_pcProgressWindow;
00051         
00053         os::Menu* m_pcMainMenu;
00054         
00056         os::ToolBar* m_pcToolBar;
00057         
00059         os::StatusBar* m_pcStatusBar;
00060         
00062         ContainerView* m_pcView;
00063         
00065         ConnectBar* m_pcConnectBar;
00066         
00068         Server* m_pcServer;
00069         
00071         AppSettings* m_pcSettings;
00072         
00074         SettingsMenu* m_pcSettingsMenu;
00075         
00076         // These were created for ease of syntax checking.
00077         // They correspond to the grammar for URI's expressed
00078         // in RFC 3986.
00079         static const os::String sUnreserved; 
00080         static const os::String sPctEncoded; 
00081         static const os::String sSubDelims; 
00082         static const os::String sUserinfo_nc; 
00083         static const os::String sDecOctet; 
00084         static const os::String sIPv4address; 
00085         static const os::String sH16; 
00086         static const os::String sLS32; 
00087         static const os::String sIPvFuture; 
00088         static const os::String sIPv6address; 
00089         static const os::String sIP_literal; 
00091 };
00092 
00093 #endif  /* MAINWINDOW_H */
00094 

Generated on Fri Jan 2 17:22:45 2009 for Transferrer by  doxygen 1.5.1