87 lines
1.6 KiB
PHP
87 lines
1.6 KiB
PHP
<?php
|
|
/**
|
|
* OpenSQLManager
|
|
*
|
|
* Free Database manager for Open Source Databases
|
|
*
|
|
* @author Timothy J. Warren
|
|
* @copyright Copyright (c) 2012
|
|
* @link https://github.com/aviat4ion/OpenSQLManager
|
|
* @license http://philsturgeon.co.uk/code/dbad-license
|
|
*/
|
|
|
|
// --------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Tabbed Container for database properties
|
|
*/
|
|
class DB_tabs extends GTKNotebook {
|
|
|
|
private static $instance;
|
|
|
|
/**
|
|
* Return the db tabs object if it exists, or create and return
|
|
*
|
|
* @return DB_tabs
|
|
*/
|
|
public static function &get_instance()
|
|
{
|
|
if (empty(self::$instance))
|
|
{
|
|
self::$instance = new DB_tabs();
|
|
}
|
|
|
|
return self::$instance;
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Create the object
|
|
*/
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
|
|
// Move the tab bar to the bottom
|
|
$this->set_tab_pos(Gtk::POS_BOTTOM);
|
|
|
|
$this->add_tab('Tables');
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Add a new tab with the provided label
|
|
*
|
|
* @param string $label
|
|
* @param GObject $widget
|
|
* @return void
|
|
*/
|
|
public function add_tab($label, $widget = NULL)
|
|
{
|
|
if (is_null($widget))
|
|
{
|
|
$widget = new Data_Grid();
|
|
}
|
|
|
|
$this->append_page($widget, new GtkLabel($label));
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Creates a new instance of this class, and destroys the existing
|
|
* instance
|
|
*
|
|
* @return DB_tabs
|
|
*/
|
|
public function reset()
|
|
{
|
|
unset(self::$instance);
|
|
return self::get_instance();
|
|
}
|
|
|
|
}
|
|
// End of db_tabs.php
|