_main_layout(); } // -------------------------------------------------------------------------- /** * Display About menu with version information */ function about() { $dlg = new GtkAboutDialog(); $dlg->set_transient_for($this); $dlg->set_program_name($this->get_title()); $dlg->set_version('0.1.0pre'); $dlg->set_copyright("Copyright (c) ".date('Y')." Timothy J. Warren"); $dlg->set_website('https://github.com/aviat4ion/OpenSQLManager'); $dlg->run(); $dlg->destroy(); } // -------------------------------------------------------------------------- /** * Quits the GTK loop */ function quit() { Gtk::main_quit(); } // -------------------------------------------------------------------------- /** * Layout the main interface * * Create menus, hboxes, vboxs and other widgets */ private function _main_layout() { $this->set_title('OpenSQLManager'); // Quit when this window is closed $this->connect_simple('destroy', array('gtk', 'main_quit')); // Main Vbox that everything is contained in $main_vbox = new GTKVBox(); // Main Hbox for columns $main_hbox = new GTKHBox(); // Add the menubar $main_vbox->pack_start($this->_create_menu(), FALSE, FALSE); // Add the info box $main_vbox->pack_start($this->_create_infobox(), FALSE, FALSE); // Add the main interface area hbox $main_vbox->pack_start($main_hbox, FALSE, FALSE); // Add the Vbox, and show the window $this->add($main_vbox); $this->show_all(); } // -------------------------------------------------------------------------- /** * Create the menu for the program * * @return GtkMenuBar */ private function _create_menu() { //Menu Bar $menu_bar = new GtkMenuBar(); //Menu Bar Top Items $top_file_menu = new GtkMenuItem('_File'); $top_help_menu = new GtkMenuItem('_Help'); //Add sub Menus to top items $file_menu = new GtkMenu(); $top_file_menu->set_submenu($file_menu); $help_menu = new GtkMenu(); $top_help_menu->set_submenu($help_menu); //File Menu { //Set up the open item $open = new GtkImageMenuItem(GTK::STOCK_OPEN); $file_menu->append($open); //Set up the quit item $quit = new GtkImageMenuItem(GTK::STOCK_QUIT); $quit->connect_simple('activate', array($this, 'quit')); $file_menu->append($quit); // Add the top level menu to the menubar $menu_bar->append($top_file_menu); } //Help Menu { //Set up the about item $about = new GtkImageMenuItem(GTK::STOCK_ABOUT); $about->connect_simple('activate', array($this, 'about')); $help_menu->append($about); // Add the top level menu to the menubar $menu_bar->append($top_help_menu); } return $menu_bar; } // -------------------------------------------------------------------------- /** * Display Info box for errors/message */ private function _create_infobox() { $this->infobar = new GtkInfoBar(); $this->messagelabel = new GtkLabel('Welcome to OpenSQLManager!'); $contentarea = $this->infobar->get_content_area(); $contentarea->add($this->messagelabel); $this->infobar->add_button(GTK::STOCK_OK, GTK::RESPONSE_OK); $this->infobar->connect_simple('response', array($this->infobar, 'hide')); return ($this->infobar); } } // End of main.php