*/ class CC_WM { /** * GtkWindow object array * Structure: * [string GtkWindow_Name] * array( * GtkWindow - Store GtkWindow object * ) * * @var array GtkWindow */ protected static $GtkWindows = array(); protected static $GtkWindowGroup; private function __construct() { } /** * Adds a GtkWindow object to Application::$GtkWindows * * @param GtkWindow $GtkWindow * @return bool */ public static function add_window(GtkWindow $GtkWindow) { $GtkWindow_Name = $GtkWindow->get_name(); if ($GtkWindow_Name !== '' && !array_key_exists($GtkWindow_Name, self::$GtkWindows)) { if (!is_object(self::$GtkWindowGroup)) { self::$GtkWindowGroup = new GtkWindowGroup(); } self::$GtkWindowGroup->add_window($GtkWindow); self::$GtkWindows[$GtkWindow_Name] = $GtkWindow; return true; } return false; } /** * Removes a GtkWindow object from Application::$GtkWindows * * @param string $GtkWindow_Name * @return GtkWindow */ public static function remove_window($GtkWindow_Name) { if ($GtkWindow_Name !== '' && array_key_exists($GtkWindow_Name, self::$GtkWindows)) { $GtkWindow = self::$GtkWindows[$GtkWindow_Name]; unset(self::$GtkWindows[$GtkWindow_Name]); self::$GtkWindowGroup->remove_window($GtkWindow); return $GtkWindow; } return false; } /** * Retrives GtkWindow object from Application::$GtkWindows * * @param string $GtkWindow_Name * @return GtkWindow */ public static function window($GtkWindow_Name) { if ($GtkWindow_Name !== '' && array_key_exists($GtkWindow_Name, self::$GtkWindows)) { return self::$GtkWindows[$GtkWindow_Name]; } return false; } /** * Retrives Application::$GtkWindows infomation array * Structure: * [int window_id] * array( * name - Name of GtkWindow * class - Name of GtkWindow class * ) * * @return array */ public static function list_windows() { $Window_List = array(); foreach (self::$GtkWindows as $GtkWindow_Name => $Class) { $Class_Name = get_class($Class); $Window_List[] = array('name' => $GtkWindow_Name, 'class' => $Class_Name); } return $Window_List; } /** * Shows all windows managed by Application * */ public static function show_all_windows() { foreach (self::$GtkWindows as $GtkWindow) { $GtkWindow->show_all(); } } /** * Hides all windows managed by Application * */ public static function hide_all_windows() { foreach (self::$GtkWindows as $GtkWindow) { $GtkWindow->hide_all(); } } public static function is_window($GtkWindow_Name) { return array_key_exists($GtkWindow_Name, self::$GtkWindows); } } ?>