a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b *
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b * gdl-dock-tablabel.h
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b *
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b * This file is part of the GNOME Devtools Libraries.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b *
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b * Copyright (C) 2002 Gustavo Gir�ldez <gustavo.giraldez@gmx.net>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b *
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b * This library is free software; you can redistribute it and/or
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b * modify it under the terms of the GNU Lesser General Public
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b * License as published by the Free Software Foundation; either
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b * version 2.1 of the License, or (at your option) any later version.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b *
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b * This library is distributed in the hope that it will be useful,
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b * but WITHOUT ANY WARRANTY; without even the implied warranty of
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b * Lesser General Public License for more details.
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b *
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b * You should have received a copy of the GNU Lesser General Public
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b * License along with this library; if not, write to the Free Software
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b */
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b#ifndef __GDL_DOCK_TABLABEL_H__
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b#define __GDL_DOCK_TABLABEL_H__
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b#include <gtk/gtk.h>
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b#include "libgdl/gdl-dock-item.h"
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_bG_BEGIN_DECLS
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b/* standard macros */
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b#define GDL_TYPE_DOCK_TABLABEL (gdl_dock_tablabel_get_type ())
73da6d4e97d881a00122425eafdc616c2a2db9c1Alex Valavanis#define GDL_DOCK_TABLABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_TABLABEL, GdlDockTablabel))
73da6d4e97d881a00122425eafdc616c2a2db9c1Alex Valavanis#define GDL_DOCK_TABLABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_TABLABEL, GdlDockTablabelClass))
73da6d4e97d881a00122425eafdc616c2a2db9c1Alex Valavanis#define GDL_IS_DOCK_TABLABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_TABLABEL))
73da6d4e97d881a00122425eafdc616c2a2db9c1Alex Valavanis#define GDL_IS_DOCK_TABLABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_TABLABEL))
73da6d4e97d881a00122425eafdc616c2a2db9c1Alex Valavanis#define GDL_DOCK_TABLABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK_TABLABEL, GdlDockTablabelClass))
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b/* data types & structures */
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_btypedef struct _GdlDockTablabel GdlDockTablabel;
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_btypedef struct _GdlDockTablabelClass GdlDockTablabelClass;
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_bstruct _GdlDockTablabel {
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b GtkBin parent;
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b guint drag_handle_size;
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b GtkWidget *item;
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b GdkWindow *event_window;
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b gboolean active;
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b GdkEventButton drag_start_event;
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b gboolean pre_drag;
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b};
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_bstruct _GdlDockTablabelClass {
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b GtkBinClass parent_class;
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b void (*button_pressed_handle) (GdlDockTablabel *tablabel,
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b GdkEventButton *event);
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b};
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b/* public interface */
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_bGtkWidget *gdl_dock_tablabel_new (GdlDockItem *item);
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_bGType gdl_dock_tablabel_get_type (void);
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_bvoid gdl_dock_tablabel_activate (GdlDockTablabel *tablabel);
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_bvoid gdl_dock_tablabel_deactivate (GdlDockTablabel *tablabel);
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_bG_END_DECLS
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b
a0df1b8dd5b14367c583ce2f72a2ca6bf1cde799gustav_b#endif