Gtk2: AlignToGtkAlign() moved from gtk2wscomctrls to gtkproc for reusing.Status bar labels alignment rework - fixed #14790.

git-svn-id: trunk@23963 -
This commit is contained in:
zeljko 2010-03-12 10:25:01 +00:00
parent 685987a64a
commit 3bd8a20b34
3 changed files with 27 additions and 9 deletions

View File

@ -389,6 +389,15 @@ begin
end;
end;
function AlignToGtkAlign(Align: TAlignment): gfloat;
begin
case Align of
taLeftJustify : AlignToGtkAlign := 0.0;
taCenter : AlignToGtkAlign := 0.5;
taRightJustify: AlignToGtkAlign := 1.0;
end;
end;
{------------------------------------------------------------------------------
function GtkWidgetIsA(Widget: PGtkWidget; AType: TGtkType): boolean;
@ -6241,6 +6250,9 @@ var
ContextID: LongWord;
NewShadowType: TGtkShadowType;
NewJustification: TGtkJustification;
{$ifndef gtk1}
xalign, yalign: gfloat;
{$endif}
begin
//DebugLn('UpdateStatusBarPanel ',DbgS(StatusBar),' Index=',dbgs(Index));
AStatusBar := StatusBar as TStatusBar;
@ -6284,7 +6296,21 @@ begin
// Alignment
NewJustification := aGtkJustification[CurPanel.Alignment];
if GTK_IS_LABEL(LabelWidget) then
begin
{$ifndef gtk1}
if GTK_IS_MISC(LabelWidget) then
begin
{gtk_label_set_justify() has no effect on labels containing
only a single line !}
gtk_misc_get_alignment(GTK_MISC(LabelWidget), @xalign, @yalign);
xalign := AlignToGtkAlign(CurPanel.Alignment);
gtk_misc_set_alignment(GTK_MISC(LabelWidget), xalign, yalign);
end else
gtk_label_set_justify(LabelWidget, NewJustification);
{$else}
gtk_label_set_justify(LabelWidget, NewJustification);
{$endif}
end;
// Bevel

View File

@ -271,6 +271,7 @@ var
function RectFromGdkRect(AGdkRect: TGdkRectangle): TRect;
function GdkRectFromRect(R: TRect): TGdkRectangle;
function AlignToGtkAlign(Align: TAlignment): gfloat;
// debugging
function GtkWidgetIsA(Widget: PGtkWidget; AType: TGtkType): boolean;

View File

@ -243,15 +243,6 @@ begin
WidgetInfo := GetWidgetInfo(ATreeViewHandle);
TVWidgets := PTVWidgets(WidgetInfo^.UserData);
end;
function AlignToGtkAlign(Align: TAlignment): gfloat;
begin
case Align of
taLeftJustify : AlignToGtkAlign := 0.0;
taCenter : AlignToGtkAlign := 0.5;
taRightJustify: AlignToGtkAlign := 1.0;
end;
end;
{$I gtk2wscustomlistview.inc}