tvplanit: Create default popupmenu items in the constructor rather than when the menu drops down. Adjust translation of popupmenu items.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8392 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2022-08-16 15:04:39 +00:00
parent e3c03b1a72
commit 8ef2d6471f
8 changed files with 292 additions and 291 deletions

View File

@ -1169,6 +1169,12 @@ begin
OpenDialog.Filter := rsXMLFiles + '|*.xml'; OpenDialog.Filter := rsXMLFiles + '|*.xml';
VpDayView1.LoadLanguage;
VpWeekView1.LoadLanguage;
VpMonthView1.LoadLanguage;
VpTaskList1.LoadLanguage;
VpContactGrid1.LoadLanguage;
// These settings work correctly only for Windows. // These settings work correctly only for Windows.
{$IFDEF WINDOWS} {$IFDEF WINDOWS}
UpdateFormatSettings(ALang); UpdateFormatSettings(ALang);

View File

@ -38,7 +38,8 @@ uses
{$ELSE} {$ELSE}
Windows, Messages. Windows, Messages.
{$ENDIF} {$ENDIF}
Classes, Graphics, Controls, Dialogs, Forms, ExtCtrls, SysUtils, ImgList, Classes, Graphics,
Controls, Dialogs, Forms, ExtCtrls, SysUtils, ImgList, Menus,
VpConst, VpSR; VpConst, VpSR;
const const
@ -76,6 +77,31 @@ type
TVpHintMode = (hmPlannerHint, hmComponentHint); TVpHintMode = (hmPlannerHint, hmComponentHint);
TVpMenuItemKind = (mikSeparator,
mikAddEvent, mikEditEvent, mikDeleteEvent,
mikAddTask, mikEditTask, mikDeleteTask,
mikAddContact, mikEditContact, mikDeleteContact,
mikImportEventFromICal, mikImportTaskFromICal, mikImportContactFromVCards,
mikResourceGroups, mikNoOverlaidEvents,
mikChangeDate, mikCustomDate, mikToday, mikYesterday, mikTomorrow,
mikPrevDay, mikNextDay, mikPrevWeek, mikNextWeek,
mikPrevMonth, mikNextMonth, mikPrevYear, mikNextYear
);
const
VpMenuCaptions: array[TVpMenuItemKind] of String = ('-',
RSPopupAddEvent, RSPopupEditEvent, RSPopupDeleteEvent,
RSTaskPopupAdd, RSTaskPopupEdit, RSTaskPopupDelete,
RSContactPopupAdd, RSContactPopupEdit, RSContactPopupDelete,
RSPopupAddEventFromICal, RSPopupAddTaskFromICal, RSContactPopupAddVCards,
RSPopupResourceGroups, RSNoOverlayedEvents,
RSPopupChangeDate, RSCustomDate, RSToday, RSYesterday, RSTomorrow,
RSPrevDay, RSNextDay, RSPrevWeek, RSNextWeek,
RSPrevMonth, RSNextMonth, RSPrevYear, RSNextYear
);
type
{ XML definitions } { XML definitions }
DOMString = WideString; DOMString = WideString;
@ -392,6 +418,15 @@ type
AData: pointer): TRect; override; AData: pointer): TRect; override;
end; end;
TVpMenuItem = class(TMenuItem)
private
FKind: TVpMenuItemKind;
procedure SetKind(AValue: TVpMenuItemKind);
public
procedure Translate;
property Kind: TVpMenuItemKind read FKind write SetKind;
end;
implementation implementation
@ -974,5 +1009,31 @@ begin
Result := inherited CalcHintRect(MAX_HINT_WIDTH, AHint, AData); Result := inherited CalcHintRect(MAX_HINT_WIDTH, AHint, AData);
end; end;
{ TVpMenuItem }
procedure TVpMenuItem.SetKind(AValue: TVpMenuItemKind);
begin
FKind := AValue;
Caption := VpMenuCaptions[FKind];
end;
procedure TVpMenuItem.Translate;
procedure _Translate(AItem: TMenuItem);
var
i: Integer;
begin
if (AItem is TVpMenuItem) then
AItem.Caption := VpMenuCaptions[TVpMenuItem(AItem).Kind];
if AItem.Count > 0then
for i := 0 to AItem.Count-1 do
_Translate(AItem.Items[i]);
end;
begin
_Translate(self);
end;
end. end.

View File

@ -200,7 +200,6 @@ type
procedure PopupAddContact(Sender: TObject); procedure PopupAddContact(Sender: TObject);
procedure PopupAddVCards(Sender: TObject); procedure PopupAddVCards(Sender: TObject);
procedure PopupDeleteContact(Sender: TObject); procedure PopupDeleteContact(Sender: TObject);
procedure PopupDropdownEvent(Sender: TObject);
procedure PopupEditContact(Sender: TObject); procedure PopupEditContact(Sender: TObject);
procedure EditContact; procedure EditContact;
procedure EndEdit(Sender: TObject); procedure EndEdit(Sender: TObject);
@ -501,7 +500,10 @@ begin
Width := 225; Width := 225;
FDefaultPopup := TPopupMenu.Create(Self); FDefaultPopup := TPopupMenu.Create(Self);
FDefaultPopup.OnPopup := PopupDropDownEvent; Self.PopupMenu := FDefaultPopup;
InitializeDefaultPopup;
LoadLanguage;
cgHookUp; cgHookUp;
end; end;
@ -1242,7 +1244,6 @@ begin
if Assigned(cgInplaceEditor) and not cgInplaceEditor.Visible then if Assigned(cgInplaceEditor) and not cgInplaceEditor.Visible then
Invalidate; Invalidate;
end; end;
{=====}
procedure TVpContactGrid.MouseUp(Button: TMouseButton; Shift: TShiftState; procedure TVpContactGrid.MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); X, Y: Integer);
@ -1254,7 +1255,6 @@ begin
ColumnWidth := cgNewColWidth; ColumnWidth := cgNewColWidth;
end; end;
end; end;
{=====}
procedure TVpContactGrid.cgSpawnContactEditDialog(IsNewContact: Boolean); procedure TVpContactGrid.cgSpawnContactEditDialog(IsNewContact: Boolean);
var var
@ -1502,43 +1502,46 @@ end;
procedure TVpContactGrid.InitializeDefaultPopup; procedure TVpContactGrid.InitializeDefaultPopup;
var var
NewItem: TMenuItem; NewItem: TVpMenuItem;
begin begin
FDefaultPopup.Items.Clear; FDefaultPopup.Items.Clear;
if RSContactPopupAdd <> '' then begin if RSContactPopupAdd <> '' then begin
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSContactPopupAdd; NewItem.Kind := mikAddContact;
NewItem.OnClick := PopupAddContact; NewItem.OnClick := PopupAddContact;
NewItem.Tag := 0; NewItem.Tag := 0;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
end; end;
if RsContactPopupAddVCards <> '' then begin
NewItem := TMenuItem.Create(Self);
NewItem.Caption := RSContactPopupAddVCards;
NewItem.OnClick := PopupAddVCards;
NewItem.Tag := 0;
FDefaultPopup.Items.Add(NewItem);
end;
if RSContactPopupEdit <> '' then begin if RSContactPopupEdit <> '' then begin
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSContactPopupEdit; NewItem.Kind := mikEditContact;
NewItem.OnClick := PopupEditContact; NewItem.OnClick := PopupEditContact;
NewItem.Tag := 1; NewItem.Tag := 1;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
end; end;
if RSContactPopupDelete <> '' then begin if RSContactPopupDelete <> '' then begin
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSContactPopupDelete; NewItem.Kind := mikDeleteContact;
NewItem.OnClick := PopupDeleteContact; NewItem.OnClick := PopupDeleteContact;
NewItem.Tag := 1; NewItem.Tag := 1;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
end; end;
if RsContactPopupAddVCards <> '' then begin
NewItem := TVpMenuItem.Create(Self);
NewItem.Kind := mikSeparator;
FDefaultPopup.Items.Add(NewItem);
NewItem := TVpMenuItem.Create(Self);
NewItem.Kind := mikImportContactFromVCards;
NewItem.OnClick := PopupAddVCards;
NewItem.Tag := 0;
FDefaultPopup.Items.Add(NewItem);
end;
end; end;
{=====}
procedure TVpContactGrid.PopupAddContact(Sender: TObject); procedure TVpContactGrid.PopupAddContact(Sender: TObject);
var var
@ -1634,11 +1637,6 @@ begin
DeleteActiveContact (True); DeleteActiveContact (True);
end; end;
procedure TVpContactGrid.PopupDropDownEvent(Sender: TObject);
begin
InitializeDefaultPopup;
end;
procedure TVpContactGrid.PopupEditContact (Sender : TObject); procedure TVpContactGrid.PopupEditContact (Sender : TObject);
begin begin
if ReadOnly then if ReadOnly then

View File

@ -889,7 +889,7 @@ begin
// popup menu // popup menu
FDefaultPopup := TPopupMenu.Create(Self); FDefaultPopup := TPopupMenu.Create(Self);
Self.PopupMenu := FDefaultPopup; Self.PopupMenu := FDefaultPopup;
FDefaultPopup.OnPopup := PopupDropDownEvent; InitializeDefaultPopup;
LoadLanguage; LoadLanguage;
@ -1010,14 +1010,18 @@ begin
end; end;
procedure TVpDayView.LoadLanguage; procedure TVpDayView.LoadLanguage;
var
item: TMenuItem;
begin begin
dvDayUpBtn.Hint := RSNextDay; dvDayUpBtn.Hint := RSNextDay;
dvDayDownBtn.Hint := RSPrevDay; dvDayDownBtn.Hint := RSPrevDay;
dvTodayBtn.Hint := RSToday; dvTodayBtn.Hint := RSToday;
dvWeekUpBtn.Hint := RSNextWeek; dvWeekUpBtn.Hint := RSNextWeek;
dvWeekDownBtn.Hint := RSPrevWeek; dvWeekDownBtn.Hint := RSPrevWeek;
FDefaultPopup.Items.Clear;
InitializeDefaultPopup; for item in FDefaultPopup.Items do
if item is TVpMenuItem then
TVpMenuItem(item).Translate;
end; end;
{=====} {=====}
@ -1134,32 +1138,24 @@ end;
procedure TVpDayView.InitializeDefaultPopup; procedure TVpDayView.InitializeDefaultPopup;
var var
NewItem: TMenuItem; NewItem: TVpMenuItem;
NewSubItem: TMenuItem; NewSubItem: TVpMenuItem;
canEdit: Boolean; canEdit: Boolean;
begin begin
canEdit := (FActiveEvent <> nil) and FActiveEvent.CanEdit; canEdit := (FActiveEvent <> nil) and FActiveEvent.CanEdit;
FDefaultPopup.Items.Clear; FDefaultPopup.Items.Clear;
if RSPopupAddEvent <> '' then begin // Add if RSPopupAddEvent <> '' then begin // Add
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSPopupAddEvent; NewItem.Kind := mikAddEvent;
NewItem.OnClick := PopupAddEvent; NewItem.OnClick := PopupAddEvent;
NewItem.Tag := 0; NewItem.Tag := 0;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
end; end;
if RSPopupAddEventFromICal <> '' then begin
NewItem := TMenuItem.Create(Self);
NewItem.Caption := RSPopupAddEventFromICal; // Import from iCal
NewItem.OnClick := PopupAddFromICalFile;
NewItem.Tag := 0;
FDefaultPopup.Items.Add(NewItem);
end;
if RSPopupEditEvent <> '' then begin // Edit if RSPopupEditEvent <> '' then begin // Edit
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSPopupEditEvent; NewItem.Kind := mikEditEvent;
NewItem.Enabled := canEdit; NewItem.Enabled := canEdit;
NewItem.OnClick := PopupEditEvent; NewItem.OnClick := PopupEditEvent;
NewItem.Tag := 1; NewItem.Tag := 1;
@ -1167,139 +1163,151 @@ begin
end; end;
if RSPopupDeleteEvent <> '' then begin // Delete if RSPopupDeleteEvent <> '' then begin // Delete
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSPopupDeleteEvent; NewItem.Kind := mikDeleteEvent;
NewItem.Enabled := canEdit; NewItem.Enabled := canEdit;
NewItem.OnClick := PopupDeleteEvent; NewItem.OnClick := PopupDeleteEvent;
NewItem.Tag := 1; NewItem.Tag := 1;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
end; end;
NewItem := TMenuItem.Create(Self); // ---- NewItem := TVpMenuItem.Create(Self); // ----
NewItem.Caption := '-'; NewItem.Kind := mikSeparator;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
if RSPopupChangeDate <> '' then begin // Change date > if RSPopupAddEventFromICal <> '' then begin
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self); // Import from iCal
NewItem.Caption := RSPopupChangeDate; NewItem.Kind := mikImportEventFromICal;
NewItem.OnClick := PopupAddFromICalFile;
NewItem.Tag := 0;
FDefaultPopup.Items.Add(NewItem);
end;
NewItem := TVpMenuItem.Create(Self); // ----
NewItem.Kind := mikSeparator;
FDefaultPopup.Items.Add(NewItem);
if RSPopupChangeDate <> '' then begin // Change date
NewItem := TVpMenuItem.Create(Self);
NewItem.Kind := mikChangeDate;
NewItem.Tag := 0; NewItem.Tag := 0;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
if RSToday <> '' then begin // Today if RSToday <> '' then begin // Today
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSToday; NewSubItem.Kind := mikToday;
NewSubItem.OnClick := PopupToday; NewSubItem.OnClick := PopupToday;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
NewSubItem := TMenuItem.Create(Self); // --- NewSubItem := TVpMenuItem.Create(Self); // ---
NewSubItem.Caption := '-'; NewSubItem.Kind := mikSeparator;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
if RSYesterday <> '' then begin // Yesterday if RSYesterday <> '' then begin // Yesterday
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSYesterday; NewSubItem.Kind := mikYesterday;
NewSubItem.OnClick := PopupYesterday; NewSubItem.OnClick := PopupYesterday;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
if RSTomorrow <> '' then begin // Tomorrow if RSTomorrow <> '' then begin // Tomorrow
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSTomorrow; NewSubItem.Kind := mikTomorrow;
NewSubItem.OnClick := PopupTomorrow; NewSubItem.OnClick := PopupTomorrow;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
NewSubItem := TMenuItem.Create(Self); // -- NewSubItem := TVpMenuItem.Create(Self); // --
NewSubItem.Caption := '-'; NewSubItem.Kind := mikSeparator;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
if RSNextDay <> '' then begin // Next day if RSNextDay <> '' then begin // Next day
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSNextDay; NewSubItem.Kind := mikNextDay;
NewSubItem.OnClick := PopupNextDay; NewSubItem.OnClick := PopupNextDay;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
if RSPrevDay <> '' then begin // Prev day if RSPrevDay <> '' then begin // Prev day
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSPrevDay; NewSubItem.Kind := mikPrevDay;
NewSubItem.OnClick := PopupPrevDay; NewSubItem.OnClick := PopupPrevDay;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
NewSubItem := TMenuItem.Create(Self); // --- NewSubItem := TVpMenuItem.Create(Self); // ---
NewSubItem.Caption := '-'; NewSubItem.Kind := mikSeparator;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
if RSNextWeek <> '' then begin // Next week if RSNextWeek <> '' then begin // Next week
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSNextWeek; NewSubItem.Kind := mikNextWeek;
NewSubItem.OnClick := PopupNextWeek; NewSubItem.OnClick := PopupNextWeek;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
if RSPrevWeek <> '' then begin // Prev week if RSPrevWeek <> '' then begin // Prev week
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSPrevWeek; NewSubItem.Kind := mikPrevWeek;
NewSubItem.OnClick := PopupPrevWeek; NewSubItem.OnClick := PopupPrevWeek;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
NewSubItem := TMenuItem.Create(Self); // --- NewSubItem := TVpMenuItem.Create(Self); // ---
NewSubItem.Caption := '-'; NewSubItem.Kind := mikSeparator;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
if RSNextMonth <> '' then begin // Next month if RSNextMonth <> '' then begin // Next month
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSNextMonth; NewSubItem.Kind := mikNextMonth;
NewSubItem.OnClick := PopupNextMonth; NewSubItem.OnClick := PopupNextMonth;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
if RSPrevMonth <> '' then begin // Prev Month if RSPrevMonth <> '' then begin // Prev Month
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSPrevMonth; NewSubItem.Kind := mikPrevMonth;
NewSubItem.OnClick := PopupPrevMonth; NewSubItem.OnClick := PopupPrevMonth;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
NewSubItem := TMenuItem.Create(Self); // --- NewSubItem := TVpMenuItem.Create(Self); // ---
NewSubItem.Caption := '-'; NewSubItem.Kind := mikSeparator;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
if RSNextYear <> '' then begin // Next year if RSNextYear <> '' then begin // Next year
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSNextYear; NewSubItem.Kind := mikNextYear;
NewSubItem.OnClick := PopupNextYear; NewSubItem.OnClick := PopupNextYear;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
if RSPrevYear <> '' then begin // Prev year if RSPrevYear <> '' then begin // Prev year
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSPrevYear; NewSubItem.Kind := mikPrevYear;
NewSubItem.OnClick := PopupPrevYear; NewSubItem.OnClick := PopupPrevYear;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
NewSubItem := TMenuItem.Create(Self); // --- NewSubItem := TVpMenuItem.Create(Self); // ---
NewSubItem.Caption := '-'; NewSubItem.Kind := mikSeparator;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
if RSCustomDate <> '' then begin // Prev year if RSCustomDate <> '' then begin // Custom date
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSCustomDate; NewSubItem.Kind := mikCustomDate;
NewSubItem.OnClick := PopupCustomDate; NewSubItem.OnClick := PopupCustomDate;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
@ -1309,7 +1317,6 @@ begin
if (Datastore <> nil) and (Datastore.Resource <> nil) then if (Datastore <> nil) and (Datastore.Resource <> nil) then
AddResourceGroupMenu(FDefaultPopup.Items, Datastore.Resource, PopupPickResourceGroupEvent); AddResourceGroupMenu(FDefaultPopup.Items, Datastore.Resource, PopupPickResourceGroupEvent);
end; end;
{=====}
procedure TVpDayView.PopupAddEvent(Sender: TObject); procedure TVpDayView.PopupAddEvent(Sender: TObject);
var var
@ -1414,51 +1421,23 @@ begin
end; end;
procedure TVpDayView.PopupNextMonth(Sender: TObject); procedure TVpDayView.PopupNextMonth(Sender: TObject);
var
M, D, Y: Word;
begin begin
DecodeDate(Date, Y, M, D); Date := IncMonth(Date, +1);
if M = 12 then begin
M := 1;
Y := Y + 1;
end else
M := M + 1;
if (D > DaysInAMonth(Y, M)) then
D := DaysInAMonth(Y, M);
Date := EncodeDate(Y, M, D);
end; end;
procedure TVpDayView.PopupPrevMonth(Sender: TObject); procedure TVpDayView.PopupPrevMonth(Sender: TObject);
var
M, D, Y: Word;
begin begin
DecodeDate(Date, Y, M, D); Date := IncMonth(Date, -1);
if M = 1 then begin
M := 12;
Y := Y - 1;
end else
M := M - 1;
if (D > DaysInAMonth(Y, M)) then
D := DaysInAMonth(Y, M);
Date := EncodeDate(Y, M, D);
end; end;
procedure TVpDayView.PopupNextYear(Sender: TObject); procedure TVpDayView.PopupNextYear(Sender: TObject);
var
M, D, Y : Word;
begin begin
DecodeDate(Date, Y, M, D); Date := IncYear(Date);
Date := EncodeDate(Y + 1, M, 1);
end; end;
procedure TVpDayView.PopupPrevYear(Sender: TObject); procedure TVpDayView.PopupPrevYear(Sender: TObject);
var
M, D, Y: Word;
begin begin
DecodeDate(Date, Y, M, D); Date := IncYear(Date, -1);
Date := EncodeDate(Y - 1, M, 1);
end; end;
procedure TVpDayView.PopupCustomDate(Sender: TObject); procedure TVpDayView.PopupCustomDate(Sender: TObject);

View File

@ -958,8 +958,9 @@ var
datastore: TVpCustomDatastore; datastore: TVpCustomDatastore;
grp: TVpResourceGroup; grp: TVpResourceGroup;
list: TList; list: TList;
newItem: TMenuItem; newItem: TVpMenuItem;
newSubItem: TMenuItem; newSubItem: TVpMenuItem;
newSubItem1: TMenuItem;
i: Integer; i: Integer;
begin begin
if (AMenu = nil) or (AResource = nil) or (AResource.Owner = nil) then if (AMenu = nil) or (AResource = nil) or (AResource.Owner = nil) then
@ -974,13 +975,13 @@ begin
try try
datastore.Resource.GetResourceGroups(list); datastore.Resource.GetResourceGroups(list);
if list.Count > 0 then begin if list.Count > 0 then begin
newItem := TMenuItem.Create(AMenu.Owner); newItem := TVpMenuItem.Create(AMenu.Owner);
newItem.Caption := RSPopupResourceGroups; newItem.Kind := mikResourceGroups;
newItem.Tag := 0; newItem.Tag := 0;
AMenu.Add(newItem); AMenu.Add(newItem);
newSubItem := TMenuItem.Create(AMenu.Owner); newSubItem := TVpMenuItem.Create(AMenu.Owner);
newSubItem.Caption := RSNoOverlayedEvents; newSubItem.Kind := mikNoOverlaidEvents;
newSubItem.OnClick := AEventHandler; newSubItem.OnClick := AEventHandler;
newSubItem.GroupIndex := 1; newSubItem.GroupIndex := 1;
newSubItem.AutoCheck := true; newSubItem.AutoCheck := true;
@ -989,21 +990,21 @@ begin
newItem.Add(newSubItem); newItem.Add(newSubItem);
if list.Count > 1 then begin if list.Count > 1 then begin
newSubItem := TMenuItem.Create(AMenu.Owner); newSubItem := TVpMenuItem.Create(AMenu.Owner);
newSubItem.Caption := '-'; newSubItem.Kind := mikSeparator;
newItem.Add(newSubItem); newItem.Add(newSubItem);
end; end;
for i:=0 to list.Count-1 do begin for i:=0 to list.Count-1 do begin
grp := TVpResourceGroup(list[i]); grp := TVpResourceGroup(list[i]);
newSubItem := TMenuItem.Create(AMenu.Owner); newSubItem1 := TMenuItem.Create(AMenu.Owner);
newSubItem.Caption := grp.Caption; newSubItem1.Caption := grp.Caption;
newSubItem.OnClick := AEventHandler; newSubItem1.OnClick := AEventHandler;
newSubItem.GroupIndex := 1; newSubItem1.GroupIndex := 1;
newSubItem.AutoCheck := true; newSubItem1.AutoCheck := true;
newSubItem.Checked := (datastore.Resource.Group = grp); newSubItem1.Checked := (datastore.Resource.Group = grp);
newSubItem.Tag := PtrInt(grp); newSubItem1.Tag := PtrInt(grp);
newItem.Add(NewSubItem); newItem.Add(NewSubItem1);
end; end;
end; end;
finally finally

View File

@ -275,7 +275,6 @@ type
{ Popup menu } { Popup menu }
procedure InitializeDefaultPopup; procedure InitializeDefaultPopup;
procedure PopupDropDownEvent(Sender: TObject);
procedure PopupToday(Sender: TObject); procedure PopupToday(Sender: TObject);
procedure PopupNextMonth(Sender: TObject); procedure PopupNextMonth(Sender: TObject);
procedure PopupPrevMonth(Sender: TObject); procedure PopupPrevMonth(Sender: TObject);
@ -550,8 +549,8 @@ begin
Width := 300; Width := 300;
FDefaultPopup := TPopupMenu.Create(Self); FDefaultPopup := TPopupMenu.Create(Self);
FDefaultPopup.OnPopup := PopupDropDownEvent;
Self.PopupMenu := FDefaultPopup; Self.PopupMenu := FDefaultPopup;
InitializeDefaultPopup;
LoadLanguage; LoadLanguage;
mvHookUp; mvHookUp;
@ -619,13 +618,14 @@ begin
end; end;
procedure TVpMonthView.LoadLanguage; procedure TVpMonthView.LoadLanguage;
var
item: TMenuItem;
begin begin
FDefaultPopup.Items.Clear; for item in FDefaultPopup.Items do
InitializeDefaultPopup; if item is TVpMenuItem then
TVpMenuItem(item).Translate;
end; end;
{=====}
procedure TVpMonthView.Invalidate; procedure TVpMonthView.Invalidate;
begin begin
inherited; inherited;
@ -1227,71 +1227,66 @@ end;
procedure TVpMonthView.InitializeDefaultPopup; procedure TVpMonthView.InitializeDefaultPopup;
var var
NewItem : TMenuItem; NewItem : TVpMenuItem;
begin begin
FDefaultPopup.Items.Clear; FDefaultPopup.Items.Clear;
if RSToday <> '' then begin if RSToday <> '' then begin
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSToday; NewItem.Kind := mikToday;
NewItem.OnClick := PopupToday; NewItem.OnClick := PopupToday;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
end; end;
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := '-'; NewItem.Kind := mikSeparator;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
if RSNextMonth <> '' then begin if RSNextMonth <> '' then begin
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSNextMonth; NewItem.Kind := mikNextMonth;
NewItem.OnClick := PopupNextMonth; NewItem.OnClick := PopupNextMonth;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
end; end;
if RSPrevMonth <> '' then begin if RSPrevMonth <> '' then begin
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSPrevMonth; NewItem.Kind := mikPrevMonth;
NewItem.OnClick := PopupPrevMonth; NewItem.OnClick := PopupPrevMonth;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
end; end;
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := '-'; NewItem.Kind := mikSeparator;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
if RSNextYear <> '' then begin if RSNextYear <> '' then begin
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSNextYear; NewItem.Kind := mikNextYear;
NewItem.OnClick := PopupNextYear; NewItem.OnClick := PopupNextYear;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
end; end;
if RSPrevYear <> '' then begin if RSPrevYear <> '' then begin
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSPrevYear; NewItem.Kind := mikPrevYear;
NewItem.OnClick := PopupPrevYear; NewItem.OnClick := PopupPrevYear;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
end; end;
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := '-'; NewItem.Kind := mikSeparator;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
if RSCustomDate <> '' then begin if RSCustomDate <> '' then begin
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSCustomDate; NewItem.Kind := mikCustomDate;
NewItem.OnClick := PopupCustomDate; NewItem.OnClick := PopupCustomDate;
NewItem.Tag := 0; NewItem.Tag := 0;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
end; end;
end; end;
procedure TVpMonthView.PopupDropDownEvent(Sender: TObject);
begin
InitializeDefaultPopup;
end;
procedure TVpMonthView.PopupToday(Sender: TObject); procedure TVpMonthView.PopupToday(Sender: TObject);
begin begin
Date := Now; Date := Now;

View File

@ -174,7 +174,6 @@ type
procedure PopupAddTask(Sender: TObject); procedure PopupAddTask(Sender: TObject);
procedure PopupAddFromICalFile(Sender: TObject); procedure PopupAddFromICalFile(Sender: TObject);
procedure PopupDeleteTask(Sender: TObject); procedure PopupDeleteTask(Sender: TObject);
procedure PopupDropdownEvent(Sender: TObject);
procedure PopupEditTask(Sender: TObject); procedure PopupEditTask(Sender: TObject);
procedure tlSetVScrollPos; procedure tlSetVScrollPos;
procedure tlCalcRowHeight; procedure tlCalcRowHeight;
@ -434,7 +433,6 @@ begin
// DoubleBuffered := False; // DoubleBuffered := False;
{$ENDIF} {$ENDIF}
end; end;
{=====}
{ {
procedure TVpTLInPlaceEdit.Move(const Loc: TRect; Redraw: Boolean); procedure TVpTLInPlaceEdit.Move(const Loc: TRect; Redraw: Boolean);
begin begin
@ -445,14 +443,12 @@ begin
if Redraw then Invalidate; if Redraw then Invalidate;
SetFocus; SetFocus;
end; } end; }
{=====}
procedure TVpTLInPlaceEdit.CreateParams(var Params: TCreateParams); procedure TVpTLInPlaceEdit.CreateParams(var Params: TCreateParams);
begin begin
inherited CreateParams(Params); inherited CreateParams(Params);
Params.Style := Params.Style{ or ES_MULTILINE}; Params.Style := Params.Style{ or ES_MULTILINE};
end; end;
{=====}
procedure TVpTLInPlaceEdit.KeyDown(var Key: Word; Shift: TShiftState); procedure TVpTLInPlaceEdit.KeyDown(var Key: Word; Shift: TShiftState);
var var
@ -491,7 +487,6 @@ begin
inherited; inherited;
end; end;
end; end;
{=====}
(*****************************************************************************) (*****************************************************************************)
{ TVpTaskList } { TVpTaskList }
@ -535,11 +530,13 @@ begin
Width := 169; Width := 169;
FDefaultPopup := TPopupMenu.Create(Self); FDefaultPopup := TPopupMenu.Create(Self);
FDefaultPopup.OnPopup := PopupDropDownEvent; Self.PopupMenu := FDefaultPopup;
InitializeDefaultPopup;
LoadLanguage;
tlHookUp; tlHookUp;
end; end;
{=====}
destructor TVpTaskList.Destroy; destructor TVpTaskList.Destroy;
begin begin
@ -552,7 +549,6 @@ begin
inherited; inherited;
end; end;
{=====}
procedure TVpTaskList.DeleteActiveTask(Verify: Boolean); procedure TVpTaskList.DeleteActiveTask(Verify: Boolean);
var var
@ -575,12 +571,14 @@ begin
end; end;
end; end;
end; end;
{=====}
procedure TVpTaskList.LoadLanguage; procedure TVpTaskList.LoadLanguage;
var
item: TMenuItem;
begin begin
FDefaultPopup.Items.Clear; for item in FDefaultPopup.Items do
InitializeDefaultPopup; if item is TVpMenuItem then
TVpMenuItem(item).Translate;
end; end;
procedure TVpTaskList.LinkHandler(Sender: TComponent; procedure TVpTaskList.LinkHandler(Sender: TComponent;
@ -592,7 +590,6 @@ begin
neInvalidate : Invalidate; neInvalidate : Invalidate;
end; end;
end; end;
{=====}
procedure TVpTaskList.tlHookUp; procedure TVpTaskList.tlHookUp;
var var
@ -608,7 +605,6 @@ begin
end; end;
end; end;
end; end;
{=====}
procedure TVpTaskList.Loaded; procedure TVpTaskList.Loaded;
begin begin
@ -654,14 +650,12 @@ begin
False { Display Only - True for a printed version, } False { Display Only - True for a printed version, }
); { False for an interactive version } ); { False for an interactive version }
end; end;
{=====}
procedure TVpTaskList.PaintToCanvas(ACanvas: TCanvas; ARect: TRect; procedure TVpTaskList.PaintToCanvas(ACanvas: TCanvas; ARect: TRect;
Angle: TVpRotationAngle); Angle: TVpRotationAngle);
begin begin
RenderToCanvas(ACanvas, ARect, Angle, 1, Now, -1, -1, gr30Min, True); RenderToCanvas(ACanvas, ARect, Angle, 1, Now, -1, -1, gr30Min, True);
end; end;
{=====}
procedure TVpTaskList.RenderToCanvas(RenderCanvas: TCanvas; RenderIn: TRect; procedure TVpTaskList.RenderToCanvas(RenderCanvas: TCanvas; RenderIn: TRect;
Angle: TVpRotationAngle; Scale: Extended; RenderDate : TDateTime; Angle: TVpRotationAngle; Scale: Extended; RenderDate : TDateTime;
@ -687,7 +681,6 @@ begin
Invalidate; Invalidate;
end; end;
end; end;
{=====}
procedure TVpTaskList.tlCalcRowHeight; procedure TVpTaskList.tlCalcRowHeight;
var var
@ -706,7 +699,6 @@ begin
tlRowHeight := tlRowHeight + TextMargin * 2; tlRowHeight := tlRowHeight + TextMargin * 2;
Canvas.Font.Assign(SaveFont); Canvas.Font.Assign(SaveFont);
end; end;
{=====}
procedure TVpTaskList.SetDrawingStyle(const Value: TVpDrawingStyle); procedure TVpTaskList.SetDrawingStyle(const Value: TVpDrawingStyle);
begin begin
@ -715,7 +707,6 @@ begin
Repaint; Repaint;
end; end;
end; end;
{=====}
procedure TVpTaskList.SetTaskIndex(Value: Integer); procedure TVpTaskList.SetTaskIndex(Value: Integer);
begin begin
@ -732,7 +723,6 @@ begin
Invalidate; Invalidate;
end; end;
end; end;
{=====}
function TVpTaskList.GetTaskIndex: Integer; function TVpTaskList.GetTaskIndex: Integer;
begin begin
@ -742,7 +732,6 @@ begin
Result := FActiveTask.Owner.IndexOf(FActiveTask); Result := FActiveTask.Owner.IndexOf(FActiveTask);
// result := FActiveTask.ItemIndex; // result := FActiveTask.ItemIndex;
end; end;
{=====}
procedure TVpTaskList.SetLineColor(Value: TColor); procedure TVpTaskList.SetLineColor(Value: TColor);
begin begin
@ -751,7 +740,6 @@ begin
Invalidate; Invalidate;
end; end;
end; end;
{=====}
procedure TVpTaskList.SetMaxVisibleTasks(Value: Word); procedure TVpTaskList.SetMaxVisibleTasks(Value: Word);
begin begin
@ -761,7 +749,6 @@ begin
Invalidate; Invalidate;
end; end;
end; end;
{=====}
{$IFNDEF LCL} {$IFNDEF LCL}
procedure TVpTaskList.WMSize(var Msg: TWMSize); procedure TVpTaskList.WMSize(var Msg: TWMSize);
@ -773,7 +760,6 @@ begin
{ force a repaint on resize } { force a repaint on resize }
Invalidate; Invalidate;
end; end;
{=====}
procedure TVpTaskList.CreateParams(var Params: TCreateParams); procedure TVpTaskList.CreateParams(var Params: TCreateParams);
begin begin
@ -787,7 +773,6 @@ begin
{$ENDIF} {$ENDIF}
end; end;
end; end;
{=====}
procedure TVpTaskList.CreateWnd; procedure TVpTaskList.CreateWnd;
begin begin
@ -795,7 +780,6 @@ begin
tlCalcRowHeight; tlCalcRowHeight;
tlSetVScrollPos; tlSetVScrollPos;
end; end;
{=====}
{$IFNDEF LCL} {$IFNDEF LCL}
procedure TVpTaskList.WMLButtonDown(var Msg: TWMLButtonDown); procedure TVpTaskList.WMLButtonDown(var Msg: TWMLButtonDown);
@ -812,7 +796,6 @@ begin
tlSetActiveTaskByCoord (Point(Msg.XPos, Msg.YPos)); tlSetActiveTaskByCoord (Point(Msg.XPos, Msg.YPos));
end; end;
end; end;
{=====}
{$IFNDEF LCL} {$IFNDEF LCL}
procedure TVpTaskList.WMRButtonDown(var Msg: TWMRButtonDown); procedure TVpTaskList.WMRButtonDown(var Msg: TWMRButtonDown);
@ -844,7 +827,6 @@ begin
FDefaultPopup.Popup(Msg.XPos + ClientOrigin.x, Msg.YPos + ClientOrigin.y); FDefaultPopup.Popup(Msg.XPos + ClientOrigin.x, Msg.YPos + ClientOrigin.y);
end; end;
end; end;
{=====}
{$IFNDEF LCL} {$IFNDEF LCL}
procedure TVpTaskList.WMLButtonDblClk(var Msg: TWMLButtonDblClk); procedure TVpTaskList.WMLButtonDblClk(var Msg: TWMLButtonDblClk);
@ -863,47 +845,49 @@ begin
if not ReadOnly then if not ReadOnly then
tlSpawnTaskEditDialog(FActiveTask = nil); tlSpawnTaskEditDialog(FActiveTask = nil);
end; end;
{=====}
procedure TVpTaskList.InitializeDefaultPopup; procedure TVpTaskList.InitializeDefaultPopup;
var var
NewItem: TMenuItem; NewItem: TVpMenuItem;
begin begin
FDefaultPopup.Items.Clear; FDefaultPopup.Items.Clear;
if RSTaskPopupAdd <> '' then begin // "Add" if RSTaskPopupAdd <> '' then begin // "Add"
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSTaskPopupAdd; NewItem.Kind := mikAddTask;
NewItem.OnClick := PopupAddTask; NewItem.OnClick := PopupAddTask;
NewItem.Tag := 0; NewItem.Tag := 0;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
end; end;
if RSPopupAddTaskFromICal <> '' then begin // Import from iCal
NewItem := TMenuItem.Create(Self);
NewItem.Caption := RSPopupAddTaskFromICal;
NewItem.OnClick := PopupAddFromICalFile;
NewItem.Tag := 0;
FDefaultPopup.Items.Add(NewItem);
end;
if RSTaskPopupEdit <> '' then begin // "Edit" if RSTaskPopupEdit <> '' then begin // "Edit"
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSTaskPopupEdit; NewItem.Kind := mikEditTask;
NewItem.OnClick := PopupEditTask; NewItem.OnClick := PopupEditTask;
NewItem.Tag := 1; NewItem.Tag := 1;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
end; end;
if RSTaskPopupDelete <> '' then begin // "Delete" if RSTaskPopupDelete <> '' then begin // "Delete"
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSTaskPopupDelete; NewItem.Kind := mikDeleteTask;
NewItem.OnClick := PopupDeleteTask; NewItem.OnClick := PopupDeleteTask;
NewItem.Tag := 1; NewItem.Tag := 1;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
end; end;
if RSPopupAddTaskFromICal <> '' then begin // Import from iCal
NewItem := TVpMenuItem.Create(Self);
NewItem.Kind := mikSeparator;
FDefaultPopup.Items.Add(NewItem);
NewItem := TVpMenuItem.Create(Self);
NewItem.Kind := mikImportTaskFromICal;
NewItem.OnClick := PopupAddFromICalFile;
NewItem.Tag := 0;
FDefaultPopup.Items.Add(NewItem);
end;
end; end;
{=====}
procedure TVpTaskList.PopupAddTask(Sender: TObject); procedure TVpTaskList.PopupAddTask(Sender: TObject);
begin begin
@ -915,7 +899,6 @@ begin
Repaint; Repaint;
tlSpawnTaskEditDialog(True); tlSpawnTaskEditDialog(True);
end; end;
{=====}
procedure TVpTaskList.PopupAddFromICalFile(Sender: TObject); procedure TVpTaskList.PopupAddFromICalFile(Sender: TObject);
var var
@ -958,11 +941,6 @@ begin
end; end;
end; end;
procedure TVpTaskList.PopupDropdownEvent(Sender: TObject);
begin
InitializeDefaultPopup;
end;
procedure TVpTaskList.PopupEditTask(Sender: TObject); procedure TVpTaskList.PopupEditTask(Sender: TObject);
begin begin
if ReadOnly then if ReadOnly then
@ -973,7 +951,6 @@ begin
tlSpawnTaskEditDialog(False); tlSpawnTaskEditDialog(False);
end; end;
end; end;
{=====}
procedure TVpTaskList.tlSpawnTaskEditDialog(IsNewTask: Boolean); procedure TVpTaskList.tlSpawnTaskEditDialog(IsNewTask: Boolean);
var var
@ -1019,7 +996,6 @@ begin
end; end;
Invalidate; Invalidate;
end; end;
{=====}
{$IFNDEF LCL} {$IFNDEF LCL}
procedure TVpTaskList.CMWantSpecialKey(var Msg: TCMWantSpecialKey); procedure TVpTaskList.CMWantSpecialKey(var Msg: TCMWantSpecialKey);
@ -1028,7 +1004,6 @@ begin
Msg.Result := 1; Msg.Result := 1;
end; end;
{$ENDIF} {$ENDIF}
{=====}
procedure TVpTaskList.tlEditInPlace(Sender: TObject); procedure TVpTaskList.tlEditInPlace(Sender: TObject);
begin begin
@ -1038,7 +1013,6 @@ begin
tlClickTimer.Enabled := false; tlClickTimer.Enabled := false;
EditTask; EditTask;
end; end;
{=====}
procedure TVpTaskList.EditTask; procedure TVpTaskList.EditTask;
var var
@ -1085,7 +1059,6 @@ begin
Invalidate; Invalidate;
end; end;
end; end;
{=====}
procedure TVpTaskList.EndEdit(Sender: TObject); procedure TVpTaskList.EndEdit(Sender: TObject);
begin begin
@ -1103,7 +1076,6 @@ begin
Invalidate; Invalidate;
end; end;
end; end;
{=====}
procedure TVpTaskList.KeyDown(var Key: Word; Shift: TShiftState); procedure TVpTaskList.KeyDown(var Key: Word; Shift: TShiftState);
var var
@ -1174,7 +1146,6 @@ begin
if TaskIndex >= tlItemsBefore + tlVisibleItems then if TaskIndex >= tlItemsBefore + tlVisibleItems then
tlItemsBefore := TaskIndex - tlVisibleItems + 1; tlItemsBefore := TaskIndex - tlVisibleItems + 1;
end; end;
{=====}
{$IFNDEF LCL} {$IFNDEF LCL}
procedure TVpTaskList.WMVScroll(var Msg: TWMVScroll); procedure TVpTaskList.WMVScroll(var Msg: TWMVScroll);
@ -1208,7 +1179,6 @@ begin
end; end;
Invalidate; Invalidate;
end; end;
{=====}
procedure TVpTaskList.tlSetVScrollPos; procedure TVpTaskList.tlSetVScrollPos;
var var
@ -1231,7 +1201,7 @@ begin
end; end;
SetScrollInfo(Handle, SB_VERT, SI, True); SetScrollInfo(Handle, SB_VERT, SI, True);
end; end;
{=====}
procedure TVpTaskList.SetShowIcon(const v: Boolean); procedure TVpTaskList.SetShowIcon(const v: Boolean);
begin begin
if v <> FShowIcon then begin if v <> FShowIcon then begin
@ -1239,7 +1209,6 @@ begin
Invalidate; Invalidate;
end; end;
end; end;
{=====}
procedure TVpTaskList.SetShowResourceName(Value: Boolean); procedure TVpTaskList.SetShowResourceName(Value: Boolean);
begin begin
@ -1248,7 +1217,6 @@ begin
Invalidate; Invalidate;
end; end;
end; end;
{=====}
procedure TVpTaskList.tlSetActiveTaskByCoord(Pnt: TPoint); procedure TVpTaskList.tlSetActiveTaskByCoord(Pnt: TPoint);
var var
@ -1293,7 +1261,6 @@ begin
end; end;
end; end;
end; end;
{=====}
function TVpTaskList.tlVisibleTaskToTaskIndex(const VisTaskIndex: Integer): Integer; function TVpTaskList.tlVisibleTaskToTaskIndex(const VisTaskIndex: Integer): Integer;
var var

View File

@ -215,7 +215,6 @@ type
procedure PopupPrevYear(Sender: TObject); procedure PopupPrevYear(Sender: TObject);
procedure PopupCustomDate(Sender: TObject); procedure PopupCustomDate(Sender: TObject);
procedure PopupPickResourceGroupEvent(Sender: TObject); procedure PopupPickResourceGroupEvent(Sender: TObject);
procedure PopupDropdownEvent(Sender: TObject);
procedure InitializeDefaultPopup; procedure InitializeDefaultPopup;
{ internal methods } { internal methods }
@ -552,14 +551,15 @@ begin
FDefaultPopup := TPopupMenu.Create (Self); FDefaultPopup := TPopupMenu.Create (Self);
Self.PopupMenu := FDefaultPopup; Self.PopupMenu := FDefaultPopup;
FDefaultPopup.OnPopup := PopupDropDownEvent; InitializeDefaultPopup;
LoadLanguage;
FAllDayEventAttr.BackgroundColor := Color; FAllDayEventAttr.BackgroundColor := Color;
FAllDayEventAttr.EventBackgroundColor := clBtnFace; FAllDayEventAttr.EventBackgroundColor := clBtnFace;
FAllDayEventAttr.EventBorderColor := LineColor; FAllDayEventAttr.EventBorderColor := LineColor;
FAllDayEventAttr.Font.Assign (Font); FAllDayEventAttr.Font.Assign (Font);
LoadLanguage;
wvHookUp; wvHookUp;
SetActiveDate(Now); SetActiveDate(Now);
end; end;
@ -665,15 +665,15 @@ begin
end; end;
end; end;
procedure TVpWeekView.LoadLanguage; procedure TVpWeekView.LoadLanguage;
var
item: TMenuItem;
begin begin
FDefaultPopup.Items.Clear; for item in FDefaultPopup.Items do
InitializeDefaultPopup; if item is TVpMenuItem then
TVpMenuItem(item).Translate;
end; end;
{=====}
procedure TVpWeekView.Invalidate; procedure TVpWeekView.Invalidate;
begin begin
inherited; inherited;
@ -716,7 +716,6 @@ begin
end; end;
end; end;
end; end;
{=====}
procedure TVpWeekView.Loaded; procedure TVpWeekView.Loaded;
begin begin
@ -724,7 +723,6 @@ begin
wvLoaded := true; wvLoaded := true;
wvPopulate; wvPopulate;
end; end;
{=====}
function TVpWeekView.GetControlType : TVpItemType; function TVpWeekView.GetControlType : TVpItemType;
begin begin
@ -745,7 +743,6 @@ begin
False // Display Only False // Display Only
); );
end; end;
{=====}
procedure TVpWeekView.PaintToCanvas(ACanvas: TCanvas; ARect: TRect; procedure TVpWeekView.PaintToCanvas(ACanvas: TCanvas; ARect: TRect;
Angle: TVpRotationAngle; ADate: TDateTime); Angle: TVpRotationAngle; ADate: TDateTime);
@ -770,14 +767,12 @@ begin
wvPainting := false; wvPainting := false;
end; end;
end; end;
{=====}
procedure TVpWeekView.wvPopulate; procedure TVpWeekView.wvPopulate;
begin begin
if DataStore <> nil then if DataStore <> nil then
DataStore.Date := FActiveDate; DataStore.Date := FActiveDate;
end; end;
{=====}
procedure TVpWeekView.DeleteActiveEvent(Verify: Boolean); procedure TVpWeekView.DeleteActiveEvent(Verify: Boolean);
var var
@ -1173,32 +1168,24 @@ end;
procedure TVpWeekView.InitializeDefaultPopup; procedure TVpWeekView.InitializeDefaultPopup;
var var
NewItem: TMenuItem; NewItem: TVpMenuItem;
NewSubItem: TMenuItem; NewSubItem: TVpMenuItem;
canEdit: Boolean; canEdit: Boolean;
begin begin
canEdit := (FActiveEvent <> nil) and FActiveEvent.CanEdit; canEdit := (FActiveEvent <> nil) and FActiveEvent.CanEdit;
FDefaultPopup.Items.Clear; FDefaultPopup.Items.Clear;
if RSPopupAddEvent <> '' then begin // Add if RSPopupAddEvent <> '' then begin // Add
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSPopupAddEvent; NewItem.Kind := mikAddEvent;
NewItem.OnClick := PopupAddEvent; NewItem.OnClick := PopupAddEvent;
NewItem.Tag := 0; NewItem.Tag := 0;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
end; end;
if RSPopupAddEventFromICal <> '' then begin
NewItem := TMenuItem.Create(Self);
NewItem.Caption := RSPopupAddEventFromICal; // Import from iCal
NewItem.OnClick := PopupAddFromICalFile;
NewItem.Tag := 0;
FDefaultPopup.Items.Add(NewItem);
end;
if RSPopupEditEvent <> '' then begin // Edit if RSPopupEditEvent <> '' then begin // Edit
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSPopupEditEvent; NewItem.Kind := mikEditEvent;
NewItem.Enabled := canEdit; NewItem.Enabled := canEdit;
NewItem.OnClick := PopupEditEvent; NewItem.OnClick := PopupEditEvent;
NewItem.Tag := 1; NewItem.Tag := 1;
@ -1206,99 +1193,111 @@ begin
end; end;
if RSPopupDeleteEvent <> '' then begin // Delete if RSPopupDeleteEvent <> '' then begin // Delete
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSPopupDeleteEvent; NewItem.Kind := mikDeleteEvent;
NewItem.Enabled := canEdit; NewItem.Enabled := canEdit;
NewItem.OnClick := PopupDeleteEvent; NewItem.OnClick := PopupDeleteEvent;
NewItem.Tag := 1; NewItem.Tag := 1;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
end; end;
NewItem := TMenuItem.Create(Self); // --- NewItem := TVpMenuItem.Create(Self); // ---
NewItem.Caption := '-'; NewItem.Kind := mikSeparator;
FDefaultPopup.Items.Add(NewItem);
if RSPopupAddEventFromICal <> '' then begin
NewItem := TVpMenuItem.Create(Self);
NewItem.Kind := mikImportEventFromICal; // Import from iCal
NewItem.OnClick := PopupAddFromICalFile;
NewItem.Tag := 0;
FDefaultPopup.Items.Add(NewItem);
end;
NewItem := TVpMenuItem.Create(Self); // ---
NewItem.Kind := mikSeparator;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
if RSPopupChangeDate <> '' then begin // Change date if RSPopupChangeDate <> '' then begin // Change date
NewItem := TMenuItem.Create(Self); NewItem := TVpMenuItem.Create(Self);
NewItem.Caption := RSPopupChangeDate; NewItem.Kind := mikChangeDate;
NewItem.Tag := 0; NewItem.Tag := 0;
FDefaultPopup.Items.Add(NewItem); FDefaultPopup.Items.Add(NewItem);
if RSToday <> '' then begin // Today if RSToday <> '' then begin // Today
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSToday; NewSubItem.Kind := mikToday;
NewSubItem.OnClick := PopupToday; NewSubItem.OnClick := PopupToday;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
NewSubItem := TMenuItem.Create(Self); // ------- NewSubItem := TVpMenuItem.Create(Self); // -------
NewSubItem.Caption := '-'; NewSubItem.Kind := mikSeparator;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
if RSNextWeek <> '' then begin // Next week if RSNextWeek <> '' then begin // Next week
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSNextWeek; NewSubItem.Kind := mikNextWeek;
NewSubItem.OnClick := PopupNextWeek; NewSubItem.OnClick := PopupNextWeek;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
if RSPrevWeek <> '' then begin // Previous week if RSPrevWeek <> '' then begin // Previous week
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSPrevWeek; NewSubItem.Kind := mikPrevWeek;
NewSubItem.OnClick := PopupPrevWeek; NewSubItem.OnClick := PopupPrevWeek;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
NewSubItem := TMenuItem.Create(Self); // ----- NewSubItem := TVpMenuItem.Create(Self); // -----
NewSubItem.Caption := '-'; NewSubItem.Kind := mikSeparator;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
if RSNextMonth <> '' then begin // Next month if RSNextMonth <> '' then begin // Next month
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSNextMonth; NewSubItem.Kind := mikNextMonth;
NewSubItem.OnClick := PopupNextMonth; NewSubItem.OnClick := PopupNextMonth;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
if RSPrevMonth <> '' then begin // Previous month if RSPrevMonth <> '' then begin // Previous month
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSPrevMonth; NewSubItem.Kind := mikPrevMonth;
NewSubItem.OnClick := PopupPrevMonth; NewSubItem.OnClick := PopupPrevMonth;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
NewSubItem := TMenuItem.Create(Self); // ------- NewSubItem := TVpMenuItem.Create(Self); // -------
NewSubItem.Caption := '-'; NewSubItem.Kind := mikSeparator;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
if RSNextYear <> '' then begin // Next year if RSNextYear <> '' then begin // Next year
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSNextYear; NewSubItem.Kind := mikNextYear;
NewSubItem.OnClick := PopupNextYear; NewSubItem.OnClick := PopupNextYear;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
if RSPrevYear <> '' then begin // previous year if RSPrevYear <> '' then begin // previous year
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSPrevYear; NewSubItem.Kind := mikPrevYear;
NewSubItem.OnClick := PopupPrevYear; NewSubItem.OnClick := PopupPrevYear;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
end; end;
NewSubItem := TMenuItem.Create(Self); // --- NewSubItem := TVpMenuItem.Create(Self); // ---
NewSubItem.Caption := '-'; NewSubItem.Kind := mikSeparator;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
if RSCustomDate <> '' then begin // Custom date if RSCustomDate <> '' then begin // Custom date
NewSubItem := TMenuItem.Create(Self); NewSubItem := TVpMenuItem.Create(Self);
NewSubItem.Caption := RSCustomDate; NewSubItem.Kind := mikCustomDate;
NewSubItem.OnClick := PopupCustomDate; NewSubItem.OnClick := PopupCustomDate;
NewSubItem.Tag := 0; NewSubItem.Tag := 0;
NewItem.Add(NewSubItem); NewItem.Add(NewSubItem);
@ -1434,11 +1433,6 @@ begin
Datastore.UpdateGroupEvents; Datastore.UpdateGroupEvents;
end; end;
procedure TVpWeekView.PopupDropDownEvent(Sender: TObject);
begin
InitializeDefaultPopup;
end;
procedure TVpWeekView.wvSpawnEventEditDialog(IsNewEvent: Boolean); procedure TVpWeekView.wvSpawnEventEditDialog(IsNewEvent: Boolean);
var var
AllowIt: Boolean; AllowIt: Boolean;