⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gtkstyle.c

📁 gtk是linux一款强大的夸平台的图形化开发工具
💻 C
📖 第 1 页 / 共 5 页
字号:
/* GTK - The GIMP Toolkit * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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.  See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. *//* * Modified by the GTK+ Team and others 1997-1999.  See the AUTHORS * file for a list of people on the GTK+ Team.  See the ChangeLog * files for a list of changes.  These files are distributed with * GTK+ at ftp://ftp.gtk.org/pub/gtk/.  */#include <math.h>#include "gtkgc.h"#include "gtkrc.h"#include "gtkstyle.h"#include "gtkwidget.h"#include "gtkthemes.h"#include "gdk/gdkprivate.h"#define LIGHTNESS_MULT  1.3#define DARKNESS_MULT   0.7/* actually glib should do that for us */#ifndef M_PI#define M_PI    3.14159265358979323846#endif /* M_PI */#ifndef M_PI_4#define M_PI_4  0.78539816339744830962#endif /* M_PI_4 */static void         gtk_style_init         (GtkStyle    *style,                                            GdkColormap *colormap,                                            gint         depth);static void         gtk_style_destroy      (GtkStyle    *style);static void gtk_default_draw_hline   (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      gint           x1,                                      gint           x2,                                      gint           y);static void gtk_default_draw_vline   (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      gint           y1,                                      gint           y2,                                      gint           x);static void gtk_default_draw_shadow  (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GtkShadowType  shadow_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      gint           x,                                      gint           y,                                      gint           width,                                      gint           height);static void gtk_default_draw_shadow  (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GtkShadowType  shadow_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      gint           x,                                      gint           y,                                      gint           width,                                      gint           height);static void gtk_default_draw_polygon (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GtkShadowType  shadow_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      GdkPoint      *points,                                      gint           npoints,                                      gboolean       fill);static void gtk_default_draw_arrow   (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GtkShadowType  shadow_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      GtkArrowType   arrow_type,                                      gboolean       fill,                                      gint           x,                                      gint           y,                                      gint           width,                                      gint           height);static void gtk_default_draw_diamond (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GtkShadowType  shadow_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      gint           x,                                      gint           y,                                      gint           width,                                      gint           height);static void gtk_default_draw_oval    (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GtkShadowType  shadow_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      gint           x,                                      gint           y,                                      gint           width,                                      gint           height);static void gtk_default_draw_string  (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      gint           x,                                      gint           y,                                      const gchar   *string);static void gtk_default_draw_box     (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GtkShadowType  shadow_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      gint           x,                                      gint           y,                                      gint           width,                                      gint           height);static void gtk_default_draw_flat_box (GtkStyle      *style,                                       GdkWindow     *window,                                       GtkStateType   state_type,                                       GtkShadowType  shadow_type,                                       GdkRectangle  *area,                                       GtkWidget     *widget,                                       gchar         *detail,                                       gint           x,                                       gint           y,                                       gint           width,                                       gint           height);static void gtk_default_draw_check   (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GtkShadowType  shadow_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      gint           x,                                      gint           y,                                      gint           width,                                      gint           height);static void gtk_default_draw_option  (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GtkShadowType  shadow_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      gint           x,                                      gint           y,                                      gint           width,                                      gint           height);static void gtk_default_draw_cross   (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GtkShadowType  shadow_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      gint           x,                                      gint           y,                                      gint           width,                                      gint           height);static void gtk_default_draw_ramp    (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GtkShadowType  shadow_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      GtkArrowType   arrow_type,                                      gint           x,                                      gint           y,                                      gint           width,                                      gint           height);static void gtk_default_draw_tab     (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GtkShadowType  shadow_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      gint           x,                                      gint           y,                                      gint           width,                                      gint           height);static void gtk_default_draw_shadow_gap (GtkStyle       *style,                                         GdkWindow      *window,                                         GtkStateType    state_type,                                         GtkShadowType   shadow_type,                                         GdkRectangle   *area,                                         GtkWidget      *widget,                                         gchar          *detail,                                         gint            x,                                         gint            y,                                         gint            width,                                         gint            height,                                         GtkPositionType gap_side,                                         gint            gap_x,                                         gint            gap_width);static void gtk_default_draw_box_gap (GtkStyle       *style,                                      GdkWindow      *window,                                      GtkStateType    state_type,                                      GtkShadowType   shadow_type,                                      GdkRectangle   *area,                                      GtkWidget      *widget,                                      gchar          *detail,                                      gint            x,                                      gint            y,                                      gint            width,                                      gint            height,                                      GtkPositionType gap_side,                                      gint            gap_x,                                      gint            gap_width);static void gtk_default_draw_extension (GtkStyle       *style,                                        GdkWindow      *window,                                        GtkStateType    state_type,                                        GtkShadowType   shadow_type,                                        GdkRectangle   *area,                                        GtkWidget      *widget,                                        gchar          *detail,                                        gint            x,                                        gint            y,                                        gint            width,                                        gint            height,                                        GtkPositionType gap_side);static void gtk_default_draw_focus   (GtkStyle      *style,                                      GdkWindow     *window,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      gint           x,                                      gint           y,                                      gint           width,                                      gint           height);static void gtk_default_draw_slider  (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GtkShadowType  shadow_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      gint           x,                                      gint           y,                                      gint           width,                                      gint           height,                                      GtkOrientation orientation);static void gtk_default_draw_handle  (GtkStyle      *style,                                      GdkWindow     *window,                                      GtkStateType   state_type,                                      GtkShadowType  shadow_type,                                      GdkRectangle  *area,                                      GtkWidget     *widget,                                      gchar         *detail,                                      gint           x,                                      gint           y,                                      gint           width,                                      gint           height,                                      GtkOrientation orientation);static void gtk_style_shade (GdkColor *a, GdkColor *b, gdouble k);static void rgb_to_hls (gdouble *r, gdouble *g, gdouble *b);static void hls_to_rgb (gdouble *h, gdouble *l, gdouble *s);static const GtkStyleClass default_class ={  2,  2,  gtk_default_draw_hline,  gtk_default_draw_vline,  gtk_default_draw_shadow,  gtk_default_draw_polygon,  gtk_default_draw_arrow,  gtk_default_draw_diamond,  gtk_default_draw_oval,  gtk_default_draw_string,  gtk_default_draw_box,  gtk_default_draw_flat_box,  gtk_default_draw_check,  gtk_default_draw_option,  gtk_default_draw_cross,  gtk_default_draw_ramp,  gtk_default_draw_tab,  gtk_default_draw_shadow_gap,  gtk_default_draw_box_gap,  gtk_default_draw_extension,  gtk_default_draw_focus,  gtk_default_draw_slider,  gtk_default_draw_handle};GdkFont *default_font = NULL;static GdkColor gtk_default_normal_fg =      { 0,      0,      0,      0 };static GdkColor gtk_default_active_fg =      { 0,      0,      0,      0 };static GdkColor gtk_default_prelight_fg =    { 0,      0,      0,      0 };static GdkColor gtk_default_selected_fg =    { 0, 0xffff, 0xffff, 0xffff };static GdkColor gtk_default_insensitive_fg = { 0, 0x7530, 0x7530, 0x7530 };static GdkColor gtk_default_normal_bg =      { 0, 0xd6d6, 0xd6d6, 0xd6d6 };static GdkColor gtk_default_active_bg =      { 0, 0xc350, 0xc350, 0xc350 };static GdkColor gtk_default_prelight_bg =    { 0, 0xea60, 0xea60, 0xea60 };static GdkColor gtk_default_selected_bg =    { 0,      0,      0, 0x9c40 };static GdkColor gtk_default_insensitive_bg = { 0, 0xd6d6, 0xd6d6, 0xd6d6 };GtkStyle*gtk_style_copy (GtkStyle *style){  GtkStyle *new_style;  guint i;    g_return_val_if_fail (style != NULL, NULL);    new_style = gtk_style_new ();    for (i = 0; i < 5; i++)    {      new_style->fg[i] = style->fg[i];      new_style->bg[i] = style->bg[i];      new_style->text[i] = style->text[i];      new_style->base[i] = style->base[i];            new_style->bg_pixmap[i] = style->bg_pixmap[i];    }    gdk_font_unref (new_style->font);  new_style->font = style->font;  gdk_font_ref (new_style->font);  if (style->rc_style)    {      new_style->rc_style = style->rc_style;      gtk_rc_style_ref (style->rc_style);    }    if (style->engine)    {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -