lazarus/gtk/gtkpagecallback.inc
marc 722563eac0 Start of gtk1-gtk2 separation
git-svn-id: branches/gtk-splitup@25851 -
2010-06-02 22:46:14 +00:00

72 lines
2.7 KiB
PHP

// included by gtkcallback.pp
{
*****************************************************************************
* *
* This file is part of the Lazarus Component Library (LCL) *
* *
* See the file COPYING.modifiedLGPL.txt, included in this distribution, *
* for details about the copyright. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* *
*****************************************************************************
}
procedure DrawNotebookPageIcon(Page: TCustomPage; Widget: PGtkWidget);
var
NoteBook: TCustomNotebook;
NoteBookWidget: PGtkWidget;
PageWidget: PGtkWidget;
TabWidget: PGtkWidget;
ImageIndex: Integer;
begin
NoteBook := Page.Parent as TCustomNotebook;
ImageIndex := NoteBook.GetImageIndex(Page.PageIndex);
if (NoteBook.Images = nil) or (ImageIndex < 0)
or (Page.ImageIndex >= NoteBook.Images.Count)
or (not NoteBook.HandleAllocated)
or (not Page.HandleAllocated)
then exit;
NoteBookWidget := PGtkWidget(NoteBook.Handle);
PageWidget := PGtkWidget(Page.Handle);
// get the tab container and the tab icon widget
TabWidget := gtk_notebook_get_tab_label(PGtkNoteBook(NotebookWidget),
PageWidget);
if TabWidget = nil then exit;
{$IFDEF VerboseGtkToDos}{$note reimplement}{$ENDIF}
DrawImageListIconOnWidget(NoteBook.Images, ImageIndex, Widget);
end;
function PageIconWidgetExposeAfter(Widget: PGtkWidget; Event: PGDKEventExpose;
Data: gPointer): GBoolean; cdecl;
var
ThePage: TCustomPage;
begin
Result := false;
//DebugLn('PageIconWidgetExposeAfter ',DbgS(Widget));
EventTrace('PageIconWidgetExposeAfter', Data);
if (Event^.Count > 0) then exit;
ThePage := TObject(Data) as TCustomPage;
DrawNotebookPageIcon(ThePage, Widget);
end;
{$IFNDEF GTK2}
function PageIconWidgetDrawAfter(Widget: PGtkWidget; area: PGDKRectangle;
data: gPointer) : GBoolean; cdecl;
var
ThePage: TCustomPage;
begin
Result := false;
//DebugLn('PageIconWidgetDrawAfter ',DbgS(Widget),' ',Area^.x,',',Area^.y);
EventTrace('PageIconWidgetDrawAfter', Data);
ThePage:=TObject(Data) as TCustomPage;
DrawNotebookPageIcon(ThePage, Widget);
end;
{$ENDIF}
// included by gtkcallback.pp