gdl-dock-item-grip.c revision 4a7191ea5b27fa8e09f130a6c2e01419ab686435
/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4; tab-width: 8 -*- */
/**
*
* Based on bonobo-dock-item-grip. Original copyright notice follows.
*
* Author:
* Michael Meeks
*
* Copyright (C) 2002 Sun Microsystems, Inc.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "gdl-i18n.h"
#include <string.h>
#include <glib-object.h>
#include "gdl-dock-item.h"
#include "gdl-dock-item-grip.h"
#include "gdl-stock.h"
#include "gdl-tools.h"
#define ALIGN_BORDER 5
enum {
};
struct _GdlDockItemGripPrivate {
};
/* must be called after size_allocate */
static void
{
}
}
}
static void
{
/* get long name property from the dock object */
}
/* retrieve stock pixbuf, if any */
if (stock_id) {
GTK_ICON_SIZE_MENU, "");
}
}
/* retrieve pixbuf icon, if any */
if (pixbuf) {
}
}
/* create layout: the actual text is reset at size_allocate */
}
}
static gint
{
/* draw background, highlight it if the dock item or any of its
* descendants have focus */
} else {
pixbuf_rect.x = title_area.x;
}
/* shrink title area by the pixbuf width plus a 1px spacing */
0, 0, pixbuf_rect.x, pixbuf_rect.y,
GDK_RGB_DITHER_NONE, 0, 0);
}
}
else
text_x = title_area.x;
}
}
static void
{
(void)master;
}
}
} else {
}
}
} else {
}
}
}
}
static void
{
if (priv->title_layout) {
}
if (priv->icon_pixbuf) {
}
grip);
}
}
static void
{
switch (prop_id) {
case PROP_ITEM:
grip);
grip);
grip);
}
break;
default:
break;
}
}
static void
{
(void)widget;
}
static void
{
(void)widget;
/* Workaround to unhighlight the iconify button. */
}
static void
{
_("Iconify"));
_("Close"));
}
static void
{
if (!grip->title_window) {
attributes.x = area.x;
attributes.y = area.y;
(GDK_WA_X |
GDK_WA_Y |
else
if (cursor)
}
}
static void
{
if (grip->title_window) {
}
}
static void
{
if (grip->title_window)
}
static void
{
if (grip->title_window)
}
static void
{
}
}
#define ELLIPSIS "..."
static void
{
if (width <= 0) {
return;
}
pango_layout_get_pixel_size (layout, &w, &h);
if (w <= width) return;
/* calculate ellipsis width */
/* not even ellipsis fits, so hide the text */
return;
}
/* shrink total available width by the width of the ellipsis */
g_string_set_size (text, x);
}
}
static void
{
else
if (grip->title_window) {
/* set layout text */
/* ellipsize title if it doesn't fit the title area */
}
}
static void
{
(void)container;
(void)widget;
g_warning ("gtk_container_add not implemented for GdlDockItemGrip");
}
static void
{
(void)container;
(void)widget;
g_warning ("gtk_container_remove not implemented for GdlDockItemGrip");
}
static void
{
if (include_internals) {
}
}
static GType
{
(void)container;
return G_TYPE_NONE;
}
static void
{
_("Dockitem which 'owns' this grip"),
/* initialize stock images */
gdl_stock_init ();
}
{
NULL);
return GTK_WIDGET (grip);
}