RxFPC:RxMDI - add new options rxtoAskCloseAll

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6844 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2019-04-12 08:54:40 +00:00
parent 3f00c5ff8f
commit af09701e95
9 changed files with 78 additions and 12 deletions

View File

@ -1,10 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<Version Value="11"/> <Version Value="12"/>
<General> <General>
<Flags>
<CompatibilityMode Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/> <SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<AutoCreateForms Value="False"/> <AutoCreateForms Value="False"/>
<Title Value="project1"/> <Title Value="project1"/>
<ResourceType Value="res"/> <ResourceType Value="res"/>

View File

@ -13,7 +13,7 @@ object Form1: TForm1
WindowState = wsMaximized WindowState = wsMaximized
object ToolPanel1: TToolPanel object ToolPanel1: TToolPanel
Left = 0 Left = 0
Height = 32 Height = 36
Top = 0 Top = 0
Width = 613 Width = 613
Items = < Items = <
@ -37,7 +37,7 @@ object Form1: TForm1
CustomizeShortCut = False CustomizeShortCut = False
Align = alTop Align = alTop
BorderWidth = 4 BorderWidth = 4
ClientHeight = 32 ClientHeight = 36
ClientWidth = 613 ClientWidth = 613
TabOrder = 0 TabOrder = 0
object RxMDICloseButton1: TRxMDICloseButton object RxMDICloseButton1: TRxMDICloseButton
@ -47,7 +47,7 @@ object Form1: TForm1
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 585 Left = 585
Height = 22 Height = 22
Top = 5 Top = 7
Width = 23 Width = 23
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
Glyph.Data = { Glyph.Data = {
@ -79,7 +79,7 @@ object Form1: TForm1
Width = 613 Width = 613
Align = alBottom Align = alBottom
FlatButton = True FlatButton = True
Options = [rxtoMidleClickClose] Options = [rxtoMidleClickClose, rxtoAskCloseAll]
end end
object StatusBar1: TStatusBar object StatusBar1: TStatusBar
Left = 0 Left = 0
@ -97,8 +97,8 @@ object Form1: TForm1
end end
object RxMDIPanel1: TRxMDIPanel object RxMDIPanel1: TRxMDIPanel
Left = 0 Left = 0
Height = 332 Height = 328
Top = 32 Top = 36
Width = 613 Width = 613
CloseButton = RxMDICloseButton1 CloseButton = RxMDICloseButton1
TaskPanel = RxMDITasks1 TaskPanel = RxMDITasks1
@ -155,6 +155,12 @@ object Form1: TForm1
Caption = 'Close all...' Caption = 'Close all...'
OnExecute = wndCloseAllExecute OnExecute = wndCloseAllExecute
end end
object optAskCloseAll: TAction
Category = 'Options'
Caption = 'Ask close all window'
Checked = True
OnExecute = optAskCloseAllExecute
end
end end
object MainMenu1: TMainMenu object MainMenu1: TMainMenu
Left = 408 Left = 408
@ -176,6 +182,9 @@ object Form1: TForm1
object MenuItem11: TMenuItem object MenuItem11: TMenuItem
Action = optHideCloseButton Action = optHideCloseButton
end end
object MenuItem12: TMenuItem
Action = optAskCloseAll
end
end end
object MenuItem3: TMenuItem object MenuItem3: TMenuItem
Caption = 'MDI forms' Caption = 'MDI forms'

View File

@ -16,6 +16,8 @@ type
Action1: TAction; Action1: TAction;
Action2: TAction; Action2: TAction;
Action3: TAction; Action3: TAction;
MenuItem12: TMenuItem;
optAskCloseAll: TAction;
WindowItems: TMenuItem; WindowItems: TMenuItem;
MenuItem13: TMenuItem; MenuItem13: TMenuItem;
wndCloseAll: TAction; wndCloseAll: TAction;
@ -46,6 +48,7 @@ type
procedure Action2Execute(Sender: TObject); procedure Action2Execute(Sender: TObject);
procedure Action3Execute(Sender: TObject); procedure Action3Execute(Sender: TObject);
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure optAskCloseAllExecute(Sender: TObject);
procedure optHideCloseButtonExecute(Sender: TObject); procedure optHideCloseButtonExecute(Sender: TObject);
procedure optMidleMouseClickCloseExecute(Sender: TObject); procedure optMidleMouseClickCloseExecute(Sender: TObject);
procedure optShowInfoLabelExecute(Sender: TObject); procedure optShowInfoLabelExecute(Sender: TObject);
@ -97,6 +100,10 @@ begin
else else
RxMDITasks1.Options:=RxMDITasks1.Options - [rxtoMidleClickClose]; RxMDITasks1.Options:=RxMDITasks1.Options - [rxtoMidleClickClose];
if optAskCloseAll.Checked then
RxMDITasks1.Options:=RxMDITasks1.Options + [rxtoAskCloseAll]
else
RxMDITasks1.Options:=RxMDITasks1.Options - [rxtoAskCloseAll];
RxMDIPanel1.HideCloseButton:=optHideCloseButton.Checked; ; RxMDIPanel1.HideCloseButton:=optHideCloseButton.Checked; ;
end; end;
@ -123,6 +130,12 @@ begin
UpdateOptions; UpdateOptions;
end; end;
procedure TForm1.optAskCloseAllExecute(Sender: TObject);
begin
optAskCloseAll.Checked:=not optAskCloseAll.Checked;
UpdateOptions;
end;
procedure TForm1.optHideCloseButtonExecute(Sender: TObject); procedure TForm1.optHideCloseButtonExecute(Sender: TObject);
begin begin
optHideCloseButton.Checked:=not optHideCloseButton.Checked; optHideCloseButton.Checked:=not optHideCloseButton.Checked;

View File

@ -52,6 +52,10 @@ msgstr ""
msgid "Close all except this" msgid "Close all except this"
msgstr "" msgstr ""
#: rxconst.scloseallquestion
msgid "Close all window?"
msgstr ""
#: rxconst.scloseallwindows #: rxconst.scloseallwindows
msgid "Close all windows" msgid "Close all windows"
msgstr "" msgstr ""
@ -184,6 +188,10 @@ msgstr "Anterior Mes|"
msgid "Previous Year|" msgid "Previous Year|"
msgstr "Anterior A?o|" msgstr "Anterior A?o|"
#: rxconst.squestion
msgid "Question"
msgstr ""
#: rxconst.sreqvalue #: rxconst.sreqvalue
msgid "Error. Expected value for field %s." msgid "Error. Expected value for field %s."
msgstr "" msgstr ""

View File

@ -60,6 +60,10 @@ msgstr "Zamknij po %d sek."
msgid "Close all except this" msgid "Close all except this"
msgstr "Zamknij wszystkie poza tym" msgstr "Zamknij wszystkie poza tym"
#: rxconst.scloseallquestion
msgid "Close all window?"
msgstr ""
#: rxconst.scloseallwindows #: rxconst.scloseallwindows
msgid "Close all windows" msgid "Close all windows"
msgstr "Zamknij wszystkie okna" msgstr "Zamknij wszystkie okna"
@ -192,6 +196,10 @@ msgstr "Poprzedni miesiąc|"
msgid "Previous Year|" msgid "Previous Year|"
msgstr "Poprzedni rok|" msgstr "Poprzedni rok|"
#: rxconst.squestion
msgid "Question"
msgstr ""
#: rxconst.sreqvalue #: rxconst.sreqvalue
msgid "Error. Expected value for field %s." msgid "Error. Expected value for field %s."
msgstr "Błąd. Spodziewano wartości dla pola %s." msgstr "Błąd. Spodziewano wartości dla pola %s."

View File

@ -60,6 +60,10 @@ msgstr "Будет закрыто через %d секунд"
msgid "Close all except this" msgid "Close all except this"
msgstr "Закрыть все окна, за исключением этого" msgstr "Закрыть все окна, за исключением этого"
#: rxconst.scloseallquestion
msgid "Close all window?"
msgstr "Закрыть все окна?"
#: rxconst.scloseallwindows #: rxconst.scloseallwindows
msgid "Close all windows" msgid "Close all windows"
msgstr "Закрыть все окна" msgstr "Закрыть все окна"
@ -192,6 +196,10 @@ msgstr "Превыдущий месяц|"
msgid "Previous Year|" msgid "Previous Year|"
msgstr "Превыдущий год|" msgstr "Превыдущий год|"
#: rxconst.squestion
msgid "Question"
msgstr "Вопрос"
#: rxconst.sreqvalue #: rxconst.sreqvalue
msgid "Error. Expected value for field %s." msgid "Error. Expected value for field %s."
msgstr "Поле %s. Требуется значение" msgstr "Поле %s. Требуется значение"

View File

@ -61,6 +61,10 @@ msgstr ""
msgid "Close all except this" msgid "Close all except this"
msgstr "Закрити всі вікна, за виключенням цього" msgstr "Закрити всі вікна, за виключенням цього"
#: rxconst.scloseallquestion
msgid "Close all window?"
msgstr ""
#: rxconst.scloseallwindows #: rxconst.scloseallwindows
msgid "Close all windows" msgid "Close all windows"
msgstr "Закрити всі вікна" msgstr "Закрити всі вікна"
@ -195,6 +199,10 @@ msgstr "Попередній місяць|"
msgid "Previous Year|" msgid "Previous Year|"
msgstr "Попередній місяць|" msgstr "Попередній місяць|"
#: rxconst.squestion
msgid "Question"
msgstr ""
#: rxconst.sreqvalue #: rxconst.sreqvalue
#, fuzzy #, fuzzy
#| msgid "Error. Expected value for filed %s." #| msgid "Error. Expected value for filed %s."

View File

@ -42,7 +42,7 @@ uses
Classes, SysUtils, Forms, Buttons, Menus, ExtCtrls, Graphics, Controls; Classes, SysUtils, Forms, Buttons, Menus, ExtCtrls, Graphics, Controls;
type type
TRxMDITaskOption = (rxtoMidleClickClose); TRxMDITaskOption = (rxtoMidleClickClose, rxtoAskCloseAll);
TRxMDITaskOptions = set of TRxMDITaskOption; TRxMDITaskOptions = set of TRxMDITaskOption;
TRxMDIPanelOption = (rxpoCloseF4, rxpoSwithByTab); TRxMDIPanelOption = (rxpoCloseF4, rxpoSwithByTab);
@ -203,7 +203,7 @@ type
end; end;
implementation implementation
uses LResources, rxlclutils, rxconst, LCLType; uses LResources, rxlclutils, rxconst, LCLType, Dialogs;
{ TRxMDICloseButton } { TRxMDICloseButton }
@ -891,6 +891,7 @@ end;
constructor TRxMDITasks.Create(TheOwner: TComponent); constructor TRxMDITasks.Create(TheOwner: TComponent);
begin begin
inherited Create(TheOwner); inherited Create(TheOwner);
FOptions:=[rxtoAskCloseAll, rxtoMidleClickClose];
Caption:=''; Caption:='';
FBtnScrollLeft:=TSpeedButton.Create(Self); FBtnScrollLeft:=TSpeedButton.Create(Self);
@ -1088,8 +1089,15 @@ begin
end; end;
procedure TRxMDIButton.DoCloseAllMenu(Sender: TObject); procedure TRxMDIButton.DoCloseAllMenu(Sender: TObject);
var
B: Boolean;
begin begin
FNavPanel.DoCloseAll(nil); if rxtoAskCloseAll in FNavPanel.Options then
B:=QuestionDlg(sQuestion, sCloseAllQuestion, mtConfirmation, [mrOk, mrCancel], 0) = mrOK
else
B:=true;
if B then
FNavPanel.DoCloseAll(nil);
end; end;
procedure TRxMDIButton.DoCloseAllExcepThisMenu(Sender: TObject); procedure TRxMDIButton.DoCloseAllExcepThisMenu(Sender: TObject);

View File

@ -41,6 +41,7 @@ const
resourcestring resourcestring
sQuestion = 'Question';
sBrowse = 'Browse'; sBrowse = 'Browse';
sDefaultFilter = 'All files (*.*)|*.*'; sDefaultFilter = 'All files (*.*)|*.*';
sDateDlgTitle = 'Select a Date'; sDateDlgTitle = 'Select a Date';
@ -104,7 +105,8 @@ resourcestring
sCloseWindows = 'Close window'; sCloseWindows = 'Close window';
sCloseAllExceptThis = 'Close all except this'; sCloseAllExceptThis = 'Close all except this';
sCloseAllWindows = 'Close all windows'; sCloseAllWindows = 'Close all windows';
sErrorLinkedTaskPanel = 'Not assigned task panel';//Нет связанной панели задач'; sErrorLinkedTaskPanel = 'Not assigned task panel';
sCloseAllQuestion = 'Close all window?';
{ TRxDateRangeEdit } { TRxDateRangeEdit }
sFirstQuarter = 'First quarter'; sFirstQuarter = 'First quarter';