tv_pd_frames.erl

来自「OTP是开放电信平台的简称」· ERL 代码 · 共 483 行

ERL
483
字号
%% ``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 via the world wide web 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.%% %% The Initial Developer of the Original Code is Ericsson Utvecklings AB.%% Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings%% AB. All Rights Reserved.''%% %%     $Id$%%-module(tv_pd_frames).-export([create_display_frames/4, resize_display_frames/3]).-include("tv_int_def.hrl").-include("tv_pd_int_def.hrl").%%%*********************************************************************%%% EXTERNAL FUNCTIONS%%%*********************************************************************%%======================================================================%% Function:      %%%% Return Value:  %%%% Description:   %%%% Parameters:    %%======================================================================create_display_frames(WindowId, WindowWidth, WindowHeight, FrameP) ->    {DisplayId, DisplayWidth, DisplayHeight} = 	create_frame(WindowId, 		     get_display_coords(WindowWidth, WindowHeight),		     ?DEFAULT_BG_COLOR,		     0),    {ToolbarId, ToolbarWidth, ToolbarHeight} = create_toolbar_frame(DisplayId, 								    DisplayWidth),    {SheetFrameId, SheetBgFrameId, SheetFrameWidth, SheetFrameHeight} = 	create_sheet_frames(DisplayId, 			    DisplayWidth, 			    DisplayHeight),    {GridFrameId, GridBgFrameId, GridFrameWidth, GridFrameHeight} = 	create_grid_frames(SheetFrameId, 			   SheetFrameWidth, 			   SheetFrameHeight),            FrameP#frame_params{display_id           = DisplayId,			toolbar_frame_id     = ToolbarId,			toolbar_frame_width  = ToolbarWidth,			toolbar_frame_height = ToolbarHeight,			sheet_frame_id       = SheetFrameId,			sheet_frame_width    = SheetFrameWidth,			sheet_frame_height   = SheetFrameHeight,			sheet_bgframe_id     = SheetBgFrameId,			grid_frame_id        = GridFrameId,			grid_frame_width     = GridFrameWidth,			grid_frame_height    = GridFrameHeight,			grid_bgframe_id      = GridBgFrameId			}.%%======================================================================%% Function:      %%%% Return Value:  %%%% Description:   %%%% Parameters:    %%======================================================================resize_display_frames(NewW, NewH, FrameP) ->    #frame_params{display_id         = DispId,		  toolbar_frame_id   = ToolbarId,		  sheet_frame_id     = SheetFgId,		  sheet_bgframe_id   = SheetBgId,		  grid_frame_id      = GridFgId,		  grid_bgframe_id    = GridBgId}  = FrameP,        {NewDispW, NewDispH} = config_frame(DispId, get_display_coords(NewW, NewH)),    {NewToolW, NewToolH} = resize_toolbar(ToolbarId, NewDispW),    {NewSheetFgW, NewSheetFgH} = resize_sheet_frames(SheetFgId, SheetBgId, NewDispW,						     NewDispH),    {NewGridFgW, NewGridFgH} = resize_grid_frames(GridFgId, GridBgId, NewSheetFgW, 						  NewSheetFgH),        FrameP#frame_params{toolbar_frame_width  = NewToolW,			toolbar_frame_height = NewToolH,			sheet_frame_width    = NewSheetFgW,			sheet_frame_height   = NewSheetFgH,			grid_frame_width     = NewGridFgW,			grid_frame_height    = NewGridFgH			}.%%%********************************************************************%%% INTERNAL FUNCTIONS%%%********************************************************************%%======================================================================%% Function:      %%%% Return Value:  %%%% Description:   %%%% Parameters:    %%======================================================================config_frame(Id, {Width, Height, Xpos, Ypos}) ->    gs:config(Id, [{width, Width},		   {height, Height},		   {x, Xpos},		   {y, Ypos}		  ]),    {Width, Height}.%%======================================================================%% Function:      %%%% Return Value:  %%%% Description:   %%%% Parameters:    %%======================================================================create_frame(ParentId, {Width, Height, Xpos, Ypos}, Color, BorderWidth) ->    Id = gs:frame(ParentId, [{width, Width},			     {height, Height},			     {x, Xpos},			     {y, Ypos},			     {bw, BorderWidth},			     {bg, Color}			    ]),    {Id, Width, Height}.%%======================================================================%% Function:      %%%% Return Value:  %%%% Description:   %%%% Parameters:    %%======================================================================create_grid_frames(SheetFrameId, SheetFrameWidth, SheetFrameHeight) ->    {BgId, _W, _H} = 	create_frame(SheetFrameId,		     get_grid_frame_coords(bg, SheetFrameWidth, SheetFrameHeight),		     ?BLACK, 		     0),    {FgId, FgWidth, FgHeight} = 	create_frame(SheetFrameId, 		     get_grid_frame_coords(fg, SheetFrameWidth, SheetFrameHeight),		     ?DEFAULT_BG_COLOR, 		     0),    {FgId, BgId, FgWidth, FgHeight}.        %%======================================================================%% Function:      %%%% Return Value:  %%%% Description:   %%%% Parameters:    %%======================================================================create_sheet_frames(DispId, DispWidth, DispHeight) ->    {BgId, _W, _H} = create_frame(DispId, 				  get_sheet_frame_coords(bg, DispWidth, DispHeight),				  ?BLACK, 				  0),    {FgId, FgWidth, FgHeight} = 	create_frame(DispId, 		     get_sheet_frame_coords(fg, DispWidth, DispHeight), 		     ?DEFAULT_BG_COLOR, 		     0),    {FgId, BgId, FgWidth, FgHeight}.%%======================================================================%% Function:      %%%% Return Value:  %%%% Description:   %%%% Parameters:    %%======================================================================create_toolbar_frame(DispId, DispWidth) ->    create_frame(DispId, get_toolbar_coords(DispWidth), ?DEFAULT_BG_COLOR, 0).%%======================================================================%% Function:      %%%% Return Value:  %%%% Description:   %%%% Parameters:    %%======================================================================get_display_coords(WindowWidth, WindowHeight) ->    Xpos = 4,    {WindowWidth - 2 * Xpos, WindowHeight - ?MENUBAR_HEIGHT - Xpos, Xpos, ?MENUBAR_HEIGHT}.%%======================================================================%% Function:      %%%% Return Value:  %%%% Description:   %%%% Parameters:    %%======================================================================get_grid_frame_coords(bg, FrameWidth, FrameHeight) ->    get_grid_frame_coords2(FrameWidth, FrameHeight, 0);get_grid_frame_coords(fg, FrameWidth, FrameHeight) ->    get_grid_frame_coords2(FrameWidth, FrameHeight, 1).%%======================================================================%% Function:      %%%% Return Value:  %%%% Description:   %%%% Parameters:    %%======================================================================get_grid_frame_coords2(FrameWidth, FrameHeight, BorderWidth) ->    Xpos   = 0,    Ypos   = 0,    Width  = FrameWidth - ?VSCALE_WIDTH - Xpos - BorderWidth,    Height = FrameHeight - ?HSCALE_HEIGHT - Ypos - BorderWidth,    {Width, Height, Xpos, Ypos}.    %%======================================================================%% Function:      %%%% Return Value:  %%%% Description:   %%%% Parameters:    %%======================================================================get_sheet_frame_coords(bg, FrameWidth, FrameHeight) ->    get_sheet_frame_coords2(FrameWidth, FrameHeight, 0);get_sheet_frame_coords(fg, FrameWidth, FrameHeight) ->    get_sheet_frame_coords2(FrameWidth, FrameHeight, 1).%%======================================================================%% Function:      %%%% Return Value:  %%%% Description:   %%%% Parameters:    %%======================================================================get_sheet_frame_coords2(FrameWidth, FrameHeight, BorderWidth) ->    Xpos   = BorderWidth,    Ypos   = ?TOOLBAR_HEIGHT + BorderWidth,    Width  = FrameWidth - 2 * BorderWidth,    Height = FrameHeight - Ypos - ?MISC_AREA_HEIGHT - BorderWidth,    {Width, Height, Xpos, Ypos}.    %%======================================================================%% Function:      %%%% Return Value:  %%%% Description:   %%%% Parameters:    %%======================================================================get_toolbar_coords(DispWidth) ->    Xpos = 0,    {DispWidth - 2 * Xpos, ?TOOLBAR_HEIGHT, Xpos, 0}.    %%======================================================================%% Function:      %%%% Return Value:  %%%% Description:   %%%% Parameters:    %%======================================================================resize_grid_frames(FgId, BgId, ParentWidth, ParentHeight) ->    config_frame(BgId, get_grid_frame_coords(bg, ParentWidth, ParentHeight)),    config_frame(FgId, get_grid_frame_coords(fg, ParentWidth, ParentHeight)).    %%======================================================================%% Function:      %%%% Return Value:  %%%% Description:   %%%% Parameters:    %%======================================================================resize_sheet_frames(FgId, BgId, ParentWidth, ParentHeight) ->    config_frame(BgId, get_sheet_frame_coords(bg, ParentWidth, ParentHeight)),    config_frame(FgId, get_sheet_frame_coords(fg, ParentWidth, ParentHeight)).		     %%======================================================================%% Function:      %%%% Return Value:  %%%% Description:   %%%% Parameters:    %%======================================================================resize_toolbar(Id, DispWidth) ->    config_frame(Id, get_toolbar_coords(DispWidth)).

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?