diff options
Diffstat (limited to 'lib/tv/src/tv_pw.erl')
-rw-r--r-- | lib/tv/src/tv_pw.erl | 328 |
1 files changed, 0 insertions, 328 deletions
diff --git a/lib/tv/src/tv_pw.erl b/lib/tv/src/tv_pw.erl deleted file mode 100644 index 5f88c9f1fd..0000000000 --- a/lib/tv/src/tv_pw.erl +++ /dev/null @@ -1,328 +0,0 @@ -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 1997-2012. All Rights Reserved. -%% -%% The contents of this file are subject to the Erlang Public License, -%% Version 1.1, (the "License"); you may not use this file except in -%% compliance with the License. You should have received a copy of the -%% Erlang Public License along with this software. If not, it can be -%% retrieved online at http://www.erlang.org/. -%% -%% Software distributed under the License is distributed on an "AS IS" -%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -%% the License for the specific language governing rights and limitations -%% under the License. -%% -%% %CopyrightEnd% -%%%********************************************************************* -%%% -%%% Description: Code for pw, the window controlling part of the table tool. -%%% -%%%********************************************************************* - - --module(tv_pw). --compile([{nowarn_deprecated_function,{gs,config,2}}]). - - - --export([pw/1]). - - - - --include("tv_int_def.hrl"). --include("tv_int_msg.hrl"). --include("tv_pw_int_def.hrl"). - - - - - - - -%%%********************************************************************* -%%% EXTERNAL FUNCTIONS -%%%********************************************************************* - - - - -%%====================================================================== -%% Function: pw. -%% -%% Return Value: None. -%% -%% Description: Process controlling the graphical window, as well as the -%% menubuttons. -%% -%% Parameters: None. -%%====================================================================== - - - -pw(Master) -> - process_flag(trap_exit, true), - ProcVars = #process_variables{master_pid = Master}, - blocked(ProcVars). - - - - - - - - - -%%%******************************************************************** -%%% INTERNAL FUNCTIONS -%%%******************************************************************** - - - - - -%%====================================================================== -%% Function: blocked. -%% -%% Return Value: None. -%% -%% Description: When started or explicitly blocked, pw enters this state, -%% where nothing is performed until the module explicitly is -%% deblocked. -%% -%% Parameters: -%%====================================================================== - - -blocked(ProcVars) -> - receive - Msg -> - case Msg of - #pw_deblock{} -> - deblock(Msg, ProcVars); - _Other -> - blocked(ProcVars) - end - end. - - - - - - - - - -%%====================================================================== -%% Function: deblocked. -%% -%% Return Value: None. -%% -%% Description: When deblocked, a window shall be created according to -%% specification received in pw_deblock message. -%% -%% Parameters: Rec: received pw_deblock message. -%%====================================================================== - - - -deblock(Msg, ProcVars) -> - #process_variables{window_params = WinP, - menu_params = MenuP} = ProcVars, - - NewWinP = ?WIN_FUNC_FILE:create_window(Msg, WinP), - NewMenuP = ?WIN_FUNC_FILE:create_menubar(NewWinP, MenuP), - - Sender = Msg#pw_deblock.sender, - Sender ! #pw_deblock_cfm{sender = self(), - win_id = NewWinP#window_params.window_id - }, - - NewProcVars = ProcVars#process_variables{window_params = NewWinP, - menu_params = NewMenuP - }, - deblocked_loop(NewProcVars). - - - - - - - - - - -%%====================================================================== -%% Function: -%% -%% Return Value: -%% -%% Description: -%% -%% Parameters: -%%====================================================================== - - -deblocked_loop(ProcVars) -> - receive - Msg -> - case Msg of - - {gs, Id, Event, Data, Args} -> - NewProcVars = gs_messages({Id, Event, Data, Args}, ProcVars), - deblocked_loop(NewProcVars); - - % Messages from pc! - #pw_select_menu{menu=Menu} -> - gs:config(Menu, [{select,true}]), - deblocked_loop(ProcVars); - - #pw_create_menu{} -> - NewProcVars = ?WIN_FUNC_FILE:create_menu(Msg, ProcVars), - % Send confirmation... - Sender = Msg#pw_create_menu.sender, - Sender ! #pw_create_menu_cfm{sender = self()}, - deblocked_loop(NewProcVars); - - #pw_set_window_title{win_title = WinTitle} -> - WinP = ProcVars#process_variables.window_params, - gs:config(WinP#window_params.window_id, [{title, "[TV] " ++ WinTitle}]), - NewWinP = WinP#window_params{window_title = WinTitle}, - NewProcVars = ProcVars#process_variables{window_params = NewWinP}, - deblocked_loop(NewProcVars); - - #pw_deblock{} -> - deblock(Msg, ProcVars); - - % Exit signals! - {'EXIT', Pid, Reason} -> - MasterPid = ProcVars#process_variables.master_pid, - exit_signals({Pid, Reason}, MasterPid), - deblocked_loop(ProcVars); - - _Other -> - deblocked_loop(ProcVars) - - end - end. - - - - - - - - - -%%====================================================================== -%% Function: -%% -%% Return Value: -%% -%% Description: -%% -%% Parameters: -%%====================================================================== - - -exit_signals(Exit_info, MasterPid) -> - case Exit_info of - {MasterPid, _Reason} -> % When from master, just quit! - exit(normal); - _Other -> - done - end. - - - - - - - - - - -%%====================================================================== -%% Function: -%% -%% Return Value: -%% -%% Description: -%% -%% Parameters: -%%====================================================================== - - -gs_messages(Msg, ProcVars) -> - MasterPid = ProcVars#process_variables.master_pid, - case Msg of - - {_Id, click, Data, _Args} -> - MasterPid ! #pc_menu_msg{sender = self(), - data = Data}, - ProcVars; - - {_Win, keypress, _Data, [Key, _ , _, 1 | _T]} -> - MenuP = ProcVars#process_variables.menu_params, - ShortcutList = MenuP#menu_params.shortcuts, - send_shortcut_data(Key, ShortcutList, MasterPid), - ProcVars; - - Msg0 = {Win, configure, _, _} -> - {Win, configure, _, [W, H | _T]} = flush_msgs(Msg0), - WinP = ProcVars#process_variables.window_params, - #window_params{window_id = WindowId, - min_window_width = MinAllowedWidth, - min_window_height = MinAllowedHeight} = WinP, - FinalWidth = ?COMM_FUNC_FILE:max(W, MinAllowedWidth), - FinalHeight = ?COMM_FUNC_FILE:max(H, MinAllowedHeight), - ?WIN_FUNC_FILE:resize_window(WindowId, FinalWidth, FinalHeight), - MasterPid ! #pc_win_conf{sender = self(), - width = FinalWidth, - height = FinalHeight}, - NewWinP = WinP#window_params{window_width = FinalWidth, - window_height = FinalHeight - }, - ProcVars#process_variables{window_params = NewWinP}; - - {_Win, destroy, _Data, _Args} -> - exit(normal); - - _Other -> - ProcVars - end. - -flush_msgs(Msg0 = {Win, Op, _, _}) -> - receive {gs, Win,Op,D,P} -> - flush_msgs({Win,Op,D,P}) - after 200 -> - Msg0 - end. - -send_shortcut_data(_Key, [], _MasterPid) -> - done; -send_shortcut_data(Key, ShortcutList, MasterPid) -> - case lists:keysearch(Key, 1, ShortcutList) of - {value, {Key, Data}} -> - MasterPid ! #pc_menu_msg{sender = self(), - data = Data}; - false -> - done - end. - - - - - - - - - - - - - - - |