fixed gtk2 intf from Peter Vreman

git-svn-id: trunk@6667 -
This commit is contained in:
mattias 2005-01-22 23:53:43 +00:00
parent 9a406a352b
commit 94f6a1142d
8 changed files with 81 additions and 11 deletions

View File

@ -19,10 +19,10 @@
<Filename Value="spriteexample.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="SpriteExample"/>
<UsageCount Value="21"/>
<UsageCount Value="22"/>
</Unit0>
<Unit1>
<CursorPos X="11" Y="82"/>
<CursorPos X="12" Y="80"/>
<EditorIndex Value="0"/>
<Filename Value="playground.pas"/>
<ComponentName Value="PlayGroundForm"/>
@ -31,7 +31,7 @@
<ResourceFilename Value="playground.lrs"/>
<TopLine Value="63"/>
<UnitName Value="PlayGround"/>
<UsageCount Value="21"/>
<UsageCount Value="22"/>
</Unit1>
</Units>
<PublishOptions>

View File

@ -379,7 +379,7 @@ begin
EventTrace('toggled', data);
if LockOnChange(PgtkObject(Widget),0) > 0 then Exit;
if GtkWidgetIsA(Widget,GTK_TOGGLE_BUTTON_TYPE) then begin
if GtkWidgetIsA(Widget,gtk_toggle_button_get_type) then begin
gtk_object_set_data(PgtkObject(Widget), 'Grayed', nil);
end;
@ -2491,7 +2491,11 @@ begin
Assert(False, Format('Trace:[GTKHScrollCB] Value: %d', [RoundToInt(Adjustment^.Value)]));
Scroll := PgtkRange(gtk_object_get_data(PGTKObject(Adjustment), 'ScrollBar'));
if Scroll=nil then exit;
{$ifdef gtk1}
RangeClass := PgtkRangeClass(PgtkObject(Scroll)^.klass);
{$else}
RangeClass := GTK_OBJECT_GET_CLASS(Scroll);
{$endif}
UpdatePolicy := gtk_range_get_update_policy(Scroll);
//X := integer(gtk_object_get_data(PGtkObject(Scroll), 'FinalEvent'));
//WriteLn('FINAL EVENT: ', X);
@ -2506,6 +2510,7 @@ begin
with Msg do begin
pos := Round(Adjustment^.Value);
ScrollBar := HWND(Scroll);
{$ifdef gtk1}
case Scroll_type(Scroll^) of
GTK_SCROLL_NONE:
begin
@ -2534,6 +2539,9 @@ begin
ScrollCode := SB_THUMBPOSITION;
end;
end;
{$else}
{$warning gtk2 TODO}
{$endif}
end;
DeliverMessage(Data, Msg);
end;
@ -2551,7 +2559,11 @@ begin
Assert(False, Format('Trace:[GTKVScrollCB] Value: %d', [RoundToInt(Adjustment^.Value)]));
Scroll := PgtkRange(gtk_object_get_data(PGTKObject(Adjustment), 'ScrollBar'));
if (Scroll=nil) then exit;
{$ifdef gtk1}
RangeClass := PgtkRangeClass(PgtkObject(Scroll)^.klass);
{$else}
RangeClass := GTK_OBJECT_GET_CLASS(Scroll);
{$endif}
UpdatePolicy := gtk_range_get_update_policy(Scroll);
//UpdatePolicy := TGtkUpdateType( gtk_object_get_data(PgtkObject(Scroll), 'UpdatePolicy'));
//WriteLn('FINAL EVENT: ', integer(gtk_object_get_data(PGtkObject(Scroll), 'FinalEvent')));
@ -2566,6 +2578,7 @@ begin
with Msg do begin
pos := Round(Adjustment^.Value);
ScrollBar := HWND(Scroll);
{$ifdef gtk1}
case Scroll_type(Scroll^) of
GTK_SCROLL_NONE:
begin
@ -2594,6 +2607,9 @@ begin
ScrollCode := SB_THUMBPOSITION;
end;
end;
{$else}
{$warning gtk2 TODO}
{$endif}
end;
DeliverMessage(Data, Msg);
end;
@ -2969,6 +2985,9 @@ end;
{ =============================================================================
$Log$
Revision 1.260 2005/01/22 23:53:43 mattias
fixed gtk2 intf from Peter Vreman
Revision 1.259 2005/01/22 22:26:16 mattias
added sprite example

View File

@ -814,8 +814,12 @@ begin
Result:=Result+' rc_style=nil';
end else begin
Result:=Result+' rc_style=[';
{$IFDEF GTK1}
Result:=Result+ARCStyle^.font_name+',';
Result:=Result+ARCStyle^.fontset_name+',';
{$ELSE GTK1}
{$WARNING TODO find GTK2 font naming}
{$ENDIF GTK1}
Result:=Result+']';
end;
end;
@ -7359,13 +7363,20 @@ begin
gtk_widget_modify_style(Widget,RCStyle);
if FreeFontName then begin
{$ifdef gtk1}
g_free(RCStyle^.font_name);
RCStyle^.font_name:=nil;
{$else}
pango_font_description_free(RCStyle^.font_desc);
RCStyle^.font_desc:=nil;
{$endif}
end;
{$ifdef gtk1}
if FreeFontSetName then begin
g_free(RCStyle^.fontset_name);
RCStyle^.fontset_name:=nil;
end;
{$endif}
//DebugLn('UpdateWidgetStyleOfControl END ',DbgSName(AWinControl),' Widget=',GetWidgetDebugReport(Widget),' Style=',GetWidgetStyleReport(Widget));
gtk_rc_style_unref(RCStyle);
end;
@ -7912,6 +7923,9 @@ end;
{ =============================================================================
$Log$
Revision 1.329 2005/01/22 23:53:43 mattias
fixed gtk2 intf from Peter Vreman
Revision 1.328 2005/01/16 11:40:10 mattias
fixed TGtkWidgetSet.ExtSelectClipRGN for DCOrigin

View File

@ -4060,7 +4060,7 @@ begin
Result := 0;
end else begin
gdk_gc_get_values(GC, @Values);
result := GdkFunctionToROP2Mode( Values.thefunction )
result := GdkFunctionToROP2Mode( Values.{$ifdef gtk1}thefunction{$else}_function{$endif} )
end;
end;
end;
@ -8857,6 +8857,9 @@ end;
{ =============================================================================
$Log$
Revision 1.388 2005/01/22 23:53:43 mattias
fixed gtk2 intf from Peter Vreman
Revision 1.387 2005/01/17 16:42:35 mattias
improved TLabel autosizing

View File

@ -165,7 +165,11 @@ function GTKAPIWidgetClient_FocusOut(AWidget: PGTKWidget;
Event: PGdkEventFocus): GTKEventResult; cdecl; forward;
procedure GTKAPIWidgetClient_ClassInit(theClass: Pointer);cdecl; forward;
{$ifdef gtk2}
procedure GTKAPIWidgetClient_Init(Client:PGTypeInstance; theClass: Pointer); cdecl; forward;
{$else}
procedure GTKAPIWidgetClient_Init(Client, theClass: Pointer); cdecl; forward;
{$endif}
function GTKAPIWidgetClient_GetType: Guint; forward;
function GTKAPIWidgetClient_New: PGTKWidget; forward;
@ -268,7 +272,11 @@ begin
end;
end;
{$ifdef gtk2}
procedure GTKAPIWidgetClient_Init(Client:PGTypeInstance; theClass: Pointer); cdecl;
{$else}
procedure GTKAPIWidgetClient_Init(Client, theClass: Pointer); cdecl;
{$endif}
// Client: PGTKAPIWidgetClient
// theClass: PGTKAPIWidgetClientClass
begin
@ -922,7 +930,11 @@ begin
WidgetClass^.focus_out_event := @GTKAPIWidget_FocusOut;
end;
{$ifdef gtk2}
procedure GTKAPIWidget_Init(waw:PGTypeInstance; theClass: Pointer); cdecl;
{$else}
procedure GTKAPIWidget_Init(waw, theClass: Pointer); cdecl;
{$endif}
// waw: PGTKAPIWidget;
// theClass: PGTKAPIWidgetClass
var
@ -1110,6 +1122,9 @@ end.
{ =============================================================================
$Log$
Revision 1.66 2005/01/22 23:53:43 mattias
fixed gtk2 intf from Peter Vreman
Revision 1.65 2004/08/30 15:47:29 mazen
* Fix parameters in function call

View File

@ -504,13 +504,13 @@ begin
if Handle<>0 then
begin
Widget:=GetWidgetInfo(Pointer(Handle),True)^.CoreWidget;
if GtkWidgetIsA(Widget,GTK_LIST_TYPE) then begin
if GtkWidgetIsA(Widget,gtk_list_get_type) then begin
if AIndex >= 0 then
begin
gtk_list_select_item(PGtkList(Widget), AIndex)
end else
gtk_list_unselect_all(PGtkList(Widget));
end else if GtkWidgetIsA(Widget,GTK_CLIST_TYPE) then begin
end else if GtkWidgetIsA(Widget,gtk_clist_get_type) then begin
gtk_clist_select_row(PGtkCList(Widget), AIndex, 1); // column
end else
raise Exception.Create('');
@ -953,9 +953,17 @@ begin
border_width:=(PGtkContainer(Widget)^.flag0 and bm_TGtkContainer_border_width)
shr bp_TGtkContainer_border_width;
PreferredWidth := (border_width + gtk_widget_get_xthickness(Widget)) * 2
{$ifdef gtk1}
+PGtkFrame(Widget)^.label_width;
PreferredHeight := Max(PGtkFrame(Widget)^.label_height,
gtk_widget_get_ythickness(Widget))
{$else}
+gtk_widget_get_xthickness(PGtkFrame(Widget)^.label_widget);
{$endif}
PreferredHeight := Max(gtk_widget_get_ythickness(Widget),
{$ifdef gtk1}
PGtkFrame(Widget)^.label_height)
{$else}
gtk_widget_get_ythickness(PGtkFrame(Widget)^.label_widget))
{$endif}
+ gtk_widget_get_ythickness(Widget)
+ 2*border_width;
//debugln('TGtkWSCustomGroupBox.GetPreferredSize ',DbgSName(AWinControl),' PreferredWidth=',dbgs(PreferredWidth),' PreferredHeight=',dbgs(PreferredHeight));

View File

@ -56,11 +56,11 @@ type
//function IntSendMessage3(LM_Message : Integer; Sender : TObject; data : pointer) : integer; override;
function LoadStockPixmap(StockID: longint) : HBitmap; override;
procedure SetCallback(const AMsg: LongInt; const AGTKObject: PGTKObject; const ALCLObject: TObject);override;
procedure SetLabel(Sender : TObject; Data : Pointer);
//procedure SetLabel(Sender : TObject; Data : Pointer);
//function SetProperties(Sender : TObject) : integer; override;
procedure SetSelectionMode(Sender: TObject; Widget: PGtkWidget;
MultiSelect, ExtendedSelect: boolean); override;
function SetTopIndex(Sender: TObject; NewTopIndex: integer): integer; override;
//function SetTopIndex(Sender: TObject; NewTopIndex: integer): integer; override;
procedure UpdateDCTextMetric(DC: TDeviceContext); override;
public
function BeginPaint(Handle: hWnd; Var PS : TPaintStruct) : hdc; override;
@ -594,6 +594,9 @@ end.
{
$Log$
Revision 1.36 2005/01/22 23:53:43 mattias
fixed gtk2 intf from Peter Vreman
Revision 1.35 2004/09/30 10:35:50 mazen
* Fix compile probelem under GTK2 related to
THandle <--> Pointer conversion

View File

@ -965,6 +965,7 @@ begin
Result := HBitmap(Pixmap);
end;
(*
{------------------------------------------------------------------------------
Method: TGtk2WidgetSet.SetLabel
Params: sender - the calling object
@ -1059,6 +1060,8 @@ begin
end;
Assert(False, Format('trace: [TGtk2WidgetSet.SetLabel] %s --> END', [Sender.ClassName]));
end;
*)
{------------------------------------------------------------------------------
Method: TGtk2WidgetSet.SetProperties
@ -1200,6 +1203,7 @@ begin
end;
end;
(*
{------------------------------------------------------------------------------
function TGtk2WidgetSet.SetTopIndex(Sender: TObject; NewTopIndex: integer
): integer;
@ -1241,6 +1245,7 @@ begin
end;
end;
end;
*)
{------------------------------------------------------------------------------
procedure TGtk2WidgetSet.UpdateDCTextMetric(DC: TDeviceContext);
@ -1375,6 +1380,9 @@ end;
{ =============================================================================
$Log$
Revision 1.20 2005/01/22 23:53:43 mattias
fixed gtk2 intf from Peter Vreman
Revision 1.19 2004/09/30 10:35:50 mazen
* Fix compile probelem under GTK2 related to
THandle <--> Pointer conversion