Added Menu

Added Start of Menus, and main interface, fleshed out classes a little
bi.
This commit is contained in:
Timothy Warren 2012-01-27 16:57:59 -05:00
parent 7da4776dfb
commit eb6edfa6c3
4 changed files with 147 additions and 5 deletions

View File

@ -9,6 +9,21 @@
* @link https://github.com/aviat4ion/OpenSQLManager * @link https://github.com/aviat4ion/OpenSQLManager
* @license http://philsturgeon.co.uk/code/dbad-license * @license http://philsturgeon.co.uk/code/dbad-license
*/ */
// --------------------------------------------------------------------------
/**
* Base Database class
*
* Extends PDO to simplify cross-database issues
*/
class DB_PDO extends PDO { class DB_PDO extends PDO {
} function __construct($dsn, $username=NULL, $password=NULL, $driver_options=array())
{
parent::__construct($dsn, $username, $password, $driver_options);
}
}
// End of db_pdo.php

View File

@ -9,6 +9,16 @@
* @link https://github.com/aviat4ion/OpenSQLManager * @link https://github.com/aviat4ion/OpenSQLManager
* @license http://philsturgeon.co.uk/code/dbad-license * @license http://philsturgeon.co.uk/code/dbad-license
*/ */
// --------------------------------------------------------------------------
/**
* ODBC Database Driver
*
* For general database access for databases not specified by the main drivers
*/
class ODBC extends DB_PDO { class ODBC extends DB_PDO {
} }
// End of odbc.php

View File

@ -9,6 +9,17 @@
* @link https://github.com/aviat4ion/OpenSQLManager * @link https://github.com/aviat4ion/OpenSQLManager
* @license http://philsturgeon.co.uk/code/dbad-license * @license http://philsturgeon.co.uk/code/dbad-license
*/ */
// --------------------------------------------------------------------------
/**
* Bootstrap file
*
* Initializes parent window and starts the GTK event loop
*/
// --------------------------------------------------------------------------
if ( ! class_exists('gtk')) if ( ! class_exists('gtk'))
{ {
die("Please load the php-gtk2 module in your php.ini\r\n"); die("Please load the php-gtk2 module in your php.ini\r\n");
@ -30,7 +41,8 @@ $dir = dirname(__FILE__);
// Create the main window // Create the main window
$wnd = new Main(); $wnd = new Main();
$wnd->show_all();
// Start the GTK event loop // Start the GTK event loop
GTK::main(); GTK::main();
// End of index.php

View File

@ -9,16 +9,121 @@
* @link https://github.com/aviat4ion/OpenSQLManager * @link https://github.com/aviat4ion/OpenSQLManager
* @license http://philsturgeon.co.uk/code/dbad-license * @license http://philsturgeon.co.uk/code/dbad-license
*/ */
// --------------------------------------------------------------------------
/**
* Main Window Class
*
* Creates and displays the main interface window
*/
class Main extends GtkWindow { class Main extends GtkWindow {
private $main_vbox, $main_hbox;
/**
* Create and display the main window on startup
*/
function __construct() function __construct()
{ {
parent::__construct(); parent::__construct();
//Layout the interface
$this->_main_layout();
}
/**
* Layout the main interface
*
* Create menus, hboxes, vboxs and other widgets
*/
private function _main_layout()
{
$this->set_title('OpenSQLManager'); $this->set_title('OpenSQLManager');
// Quit when this window is closed // Quit when this window is closed
$this->connect_simple('destroy', array('gtk', 'main_quit')); $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 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 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 About menu with version information
*/
function about()
{
}
/**
* Quits the GTK loop
*/
function quit()
{
Gtk::main_quit();
}
}
// End of main.php