mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-15 09:19:22 +02:00
MG: TMenuItem.Caption can now be set after creation
git-svn-id: trunk@732 -
This commit is contained in:
parent
5aa8706df6
commit
d5aeeacdc9
@ -1786,17 +1786,53 @@ procedure TgtkObject.SetLabel(Sender : TObject; Data : Pointer);
|
||||
// PGtkWidget(P), PGChar(data));
|
||||
end;
|
||||
|
||||
procedure SetMenuItemCaption;
|
||||
var
|
||||
MenuItemWidget: PGtkWidget;
|
||||
LabelWidget: PGtkLabel;
|
||||
MenuItem: TMenuItem;
|
||||
AmpPos: integer;
|
||||
NewCaption: string;
|
||||
begin
|
||||
MenuItem:=TMenuItem(Sender);
|
||||
MenuItemWidget:=PGtkWidget(MenuItem.Handle);
|
||||
if MenuItemWidget=nil then exit;
|
||||
LabelWidget:=PGTKLabel(PGTKBin(MenuItemWidget)^.Child);
|
||||
if LabelWidget=nil then exit;
|
||||
|
||||
NewCaption:=MenuItem.Caption;
|
||||
if NewCaption <> '-' then
|
||||
begin
|
||||
//Check for a shortcut key
|
||||
AmpPos := pos('&', NewCaption);
|
||||
if AmpPos <> 0 then begin
|
||||
NewCaption[AmpPos - 1] := '_';
|
||||
SetAccelKey(MenuItemWidget,gtk_label_parse_uline(LabelWidget,
|
||||
PChar(NewCaption)));
|
||||
end
|
||||
else
|
||||
gtk_label_set_text(LabelWidget,PChar(NewCaption));
|
||||
end
|
||||
else
|
||||
gtk_label_set_text(LabelWidget,PChar(NewCaption));
|
||||
end;
|
||||
|
||||
|
||||
var
|
||||
P : Pointer;
|
||||
pLabel: pchar;
|
||||
begin
|
||||
if Sender is TMenuItem then begin
|
||||
SetMenuItemCaption;
|
||||
exit;
|
||||
end;
|
||||
|
||||
if Sender is TWinControl
|
||||
then Assert(False, Format('Trace: [TgtkObject.SetLabel] %s --> label %s', [Sender.ClassName, TControl(Sender).Caption]))
|
||||
else begin
|
||||
Assert(False, Format('Trace:WARNING: [TgtkObject.SetLabel] %s --> No Decendant of TWinControl', [Sender.ClassName]));
|
||||
writeln('[TgtkObject.SetLabel] ERROR: Sender (',Sender.Classname,')'
|
||||
,'is not TWinControl ');
|
||||
Halt;
|
||||
raise Exception.Create('[TgtkObject.SetLabel] ERROR: Sender ('+Sender.Classname+')'
|
||||
+' is not TWinControl ');
|
||||
end;
|
||||
|
||||
P := Pointer(TWinControl(Sender).Handle);
|
||||
@ -1851,6 +1887,9 @@ begin
|
||||
csPage:
|
||||
SetNotebookPageTabLabel;
|
||||
|
||||
csMenuItem:
|
||||
SetMenuItemCaption;
|
||||
|
||||
csComboBox : gtk_entry_set_text(PGtkEntry(PGtkCombo(P)^.entry), PLabel);
|
||||
else
|
||||
Assert(True, Format ('WARNING: [TgtkObject.SetLabel] --> not handled for class %s ', [Sender.ClassName]));
|
||||
@ -3624,7 +3663,7 @@ begin
|
||||
begin
|
||||
StrTemp[tempInt - 1] := '_';
|
||||
P := gtk_menu_item_new_with_label('');
|
||||
SetAccelKey(P, gtk_label_parse_uline(PGTKLabel(PGTKBin(p)^.Child), StrTemp));
|
||||
SetAccelKey(P,gtk_label_parse_uline(PGTKLabel(PGTKBin(p)^.Child),StrTemp));
|
||||
end
|
||||
else
|
||||
P := gtk_menu_item_new_with_label(Strtemp)
|
||||
@ -5282,6 +5321,9 @@ end;
|
||||
{ =============================================================================
|
||||
|
||||
$Log$
|
||||
Revision 1.154 2002/08/05 10:45:04 lazarus
|
||||
MG: TMenuItem.Caption can now be set after creation
|
||||
|
||||
Revision 1.153 2002/08/05 08:56:56 lazarus
|
||||
MG: TMenuItems can now be enabled and disabled
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user