summaryrefslogtreecommitdiff
path: root/src/themes
diff options
context:
space:
mode:
authorHavoc Pennington <hp@pobox.com>2002-02-07 03:07:56 +0000
committerHavoc Pennington <hp@src.gnome.org>2002-02-07 03:07:56 +0000
commit8ae714eeaef03db0a55c11fc31834c8d65e2ea03 (patch)
treee3bc1027754f8e70bfc06266f798f682802c4342 /src/themes
parent2be2d8ccbe196193d383841e1c990843a35d4f1b (diff)
downloadmetacity-8ae714eeaef03db0a55c11fc31834c8d65e2ea03.tar.gz
disable custom log handler and fatal mask for now
2002-02-06 Havoc Pennington <hp@pobox.com> * src/main.c (main): disable custom log handler and fatal mask for now * src/theme.c (meta_draw_op_list_draw): Add META_DRAW_CLIP * src/main.c: load theme, monitor current theme setting * src/prefs.c: add "current theme" setting * src/stack.c (meta_stack_free): don't try to free last_root_children_stacked if it doesn't exist * src/themewidget.c: pluggable GtkMisc subclass to use for menu icons * src/screen.c (meta_screen_manage_all_windows): fix signed/unsigned warning * src/frames.c: port to theme system (meta_frames_style_set): chain up * theme-format.txt: new file * configure.in: add more compiler warnings * src/theme.c: add various stuff needed to get theme parser working. Remove the "spacer" concept from FrameLayout object. Add draw op that references a draw op list. * configure.in: require GTK 1.3.13 * src/Makefile.am: add theme-parser.[hc], implement loading a theme * src/theme.c: add "draw title" and "draw window icon" operations (meta_draw_op_draw): put object_width/object_height in expression environment before computing x/y. Handle out-of-memory when creating pixbufs. Assorted other cleanups.
Diffstat (limited to 'src/themes')
-rw-r--r--src/themes/Atlanta/metacity-theme-1.xml239
-rw-r--r--src/themes/Makefile.am29
2 files changed, 268 insertions, 0 deletions
diff --git a/src/themes/Atlanta/metacity-theme-1.xml b/src/themes/Atlanta/metacity-theme-1.xml
new file mode 100644
index 00000000..dd767325
--- /dev/null
+++ b/src/themes/Atlanta/metacity-theme-1.xml
@@ -0,0 +1,239 @@
+<?xml version="1.0"?>
+<metacity_theme>
+<info>
+ <name>Default</name>
+ <author>Havoc Pennington &lt;hp@redhat.com&gt;</author>
+ <copyright>&#194; Havoc Pennington, 2002</copyright>
+ <date>February 3, 2002</date>
+ <description>Simple low-overhead default theme that comes with Metacity.</description>
+</info>
+
+<frame_geometry name="normal">
+ <distance name="left_width" value="6"/>
+ <distance name="right_width" value="6"/>
+ <distance name="bottom_height" value="7"/>
+ <distance name="left_titlebar_edge" value="6"/>
+ <distance name="right_titlebar_edge" value="6"/>
+ <distance name="button_width" value="17"/>
+ <distance name="button_height" value="17"/>
+ <distance name="title_vertical_pad" value="3"/>
+ <border name="title_border" left="3" right="4" top="4" bottom="3"/>
+ <border name="button_border" left="0" right="0" top="1" bottom="1"/>
+</frame_geometry>
+
+<!-- strip borders off the normal geometry -->
+<frame_geometry name="normal_borderless" parent="normal">
+ <distance name="left_width" value="0"/>
+ <distance name="right_width" value="0"/>
+ <distance name="bottom_height" value="0"/>
+ <distance name="left_titlebar_edge" value="0"/>
+ <distance name="right_titlebar_edge" value="0"/>
+</frame_geometry>
+
+<!-- define constants -->
+<constant name="ArrowWidth" value="7"/>
+<constant name="ArrowHeight" value="5"/>
+<constant name="ButtonIPad" value="3"/>
+<constant name="ThickLineWidth" value="3"/>
+<constant name="IconTitleSpacing" value="2"/>
+<constant name="SpacerWidth" value="8"/>
+<constant name="SpacerHeight" value="11"/>
+
+<!-- Buttons -->
+
+<draw_ops name="button_pressed_bg">
+ <gtk_box state="active" shadow="in" x="0" y="0" width="width" height="height"/>
+</draw_ops>
+
+<draw_ops name="menu_button">
+ <gtk_arrow state="normal" shadow="out" arrow="down"
+ x="(width - ArrowWidth) / 2"
+ y="(height - ArrowHeight) / 2"
+ width="ArrowWidth"
+ height="ArrowHeight"/>
+</draw_ops>
+
+<draw_ops name="menu_button_pressed">
+ <include name="button_pressed_bg"/>
+ <include name="menu_button"/>
+</draw_ops>
+
+<draw_ops name="minimize_button">
+ <line color="gtk:fg[NORMAL]"
+ x1="ButtonIPad"
+ y1="height - ButtonIPad - ThickLineWidth + 1"
+ x2="width - ButtonIPad"
+ y2="height - ButtonIPad - ThickLineWidth + 1"
+ width="3"/> <!-- FIXME allow a constant here -->
+</draw_ops>
+
+<draw_ops name="minimize_button_pressed">
+ <include name="button_pressed_bg"/>
+ <include name="minimize_button"/>
+</draw_ops>
+
+<draw_ops name="maximize_button">
+ <rectangle color="gtk:fg[NORMAL]" filled="false"
+ x="ButtonIPad" y="ButtonIPad" width="width-ButtonIPad*2-1" height="height-ButtonIPad*2-1"/>
+ <line color="gtk:fg[NORMAL]" width="3"
+ x1="ButtonIPad" y1="ButtonIPad+1" x2="width-ButtonIPad" y2="ButtonIPad+1"/>
+</draw_ops>
+
+<draw_ops name="maximize_button_pressed">
+ <include name="button_pressed_bg"/>
+ <include name="maximize_button"/>
+</draw_ops>
+
+<draw_ops name="mini_window_icon">
+ <rectangle color="gtk:bg[NORMAL]" filled="true"
+ x="0" y="0" width="width-1" height="height-1"/>
+ <rectangle color="gtk:fg[NORMAL]" filled="false"
+ x="0" y="0" width="width-1" height="height-1"/>
+ <line color="gtk:fg[NORMAL]" width="2"
+ x1="0" y1="1" x2="width" y2="1"/>
+</draw_ops>
+
+<draw_ops name="restore_button">
+ <include name="mini_window_icon"
+ x="ButtonIPad" y="ButtonIPad"
+ width="width - 5 - ButtonIPad"
+ height="height - 5 - ButtonIPad"/>
+ <include name="mini_window_icon"
+ x="3 + ButtonIPad" y="3 + ButtonIPad"
+ width="width - 5 - ButtonIPad"
+ height="height - 5 - ButtonIPad"/>
+</draw_ops>
+
+<draw_ops name="restore_button_pressed">
+ <include name="button_pressed_bg"/>
+ <include name="restore_button"/>
+</draw_ops>
+
+<draw_ops name="close_button">
+ <line color="gtk:fg[NORMAL]"
+ x1="ButtonIPad" y1="ButtonIPad"
+ x2="width - ButtonIPad - 1" y2="height - ButtonIPad - 1"/>
+ <line color="gtk:fg[NORMAL]"
+ x1="ButtonIPad" y1="height - ButtonIPad - 1"
+ x2="width - ButtonIPad - 1" y2="ButtonIPad"/>
+</draw_ops>
+
+<draw_ops name="close_button_pressed">
+ <include name="button_pressed_bg"/>
+ <include name="close_button"/>
+</draw_ops>
+
+<draw_ops name="outer_bevel">
+ <rectangle color="#000000"
+ x="0" y="0" width="width-1" height="height-1"/>
+ <line color="gtk:light[NORMAL]"
+ x1="1" y1="1" x2="1" y2="height-2"/>
+ <line color="gtk:light[NORMAL]"
+ x1="1" y1="1" x2="width-2" y2="1"/>
+ <line color="gtk:dark[NORMAL]"
+ x1="width-2" y1="1" x2="width-2" y2="height-2"/>
+ <line color="gtk:dark[NORMAL]"
+ x1="1" y1="height-2" x2="width-2" y2="height-2"/>
+</draw_ops>
+
+<draw_ops name="focus_background">
+ <include name="outer_bevel"/>
+ <rectangle color="#000000"
+ x="left_width-1" y="top_height-1"
+ width="width-left_width-right_width+1"
+ height="height-top_height-bottom_height+1"/>
+</draw_ops>
+
+<draw_ops name="title_gradient">
+ <gradient type="diagonal" x="0" y="0" width="width-SpacerWidth" height="height">
+ <color value="blend/gtk:bg[NORMAL]/gtk:bg[SELECTED]/0.6"/>
+ <color value="gtk:bg[SELECTED]"/>
+ </gradient>
+ <gtk_vline state="normal" x="width+1-SpacerWidth/2"
+ y1="(height-SpacerHeight)/2"
+ y2="height - (height-SpacerHeight)/2"/>
+</draw_ops>
+
+<draw_ops name="title_text_focused">
+ <clip x="0" y="0" width="width-SpacerWidth" height="height"/>
+ <title color="gtk:fg[SELECTED]"
+ x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing"
+ y="((height - title_height) / 2) `max` 0"/>
+ <icon x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2"
+ y="(height-mini_icon_height) / 2"
+ width="mini_icon_width" height="mini_icon_height"/>
+</draw_ops>
+
+<draw_ops name="title_text">
+ <clip x="0" y="0" width="width-SpacerWidth" height="height"/>
+ <title color="gtk:fg[NORMAL]"
+ x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing"
+ y="((height - title_height) / 2) `max` 0"/>
+ <icon x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2"
+ y="(height-mini_icon_height) / 2"
+ width="mini_icon_width" height="mini_icon_height"/>
+</draw_ops>
+
+<draw_ops name="title_normal">
+ <include name="title_text"/>
+</draw_ops>
+
+<draw_ops name="title_focused">
+ <include name="title_gradient"/>
+ <include name="title_text_focused"/>
+</draw_ops>
+
+<frame_style name="normal_unfocused" geometry="normal">
+ <piece position="entire_background" draw_ops="outer_bevel"/>
+ <piece position="title" draw_ops="title_normal"/>
+
+ <!-- we don't specify for prelight, so normal is used -->
+ <button function="close" state="normal" draw_ops="close_button"/>
+ <button function="close" state="pressed" draw_ops="close_button_pressed"/>
+ <button function="minimize" state="normal" draw_ops="minimize_button"/>
+ <button function="minimize" state="pressed" draw_ops="minimize_button_pressed"/>
+ <button function="maximize" state="normal" draw_ops="maximize_button"/>
+ <button function="maximize" state="pressed" draw_ops="maximize_button_pressed"/>
+ <button function="menu" state="normal" draw_ops="menu_button"/>
+ <button function="menu" state="pressed" draw_ops="menu_button_pressed"/>
+</frame_style>
+
+<frame_style name="normal_focused" geometry="normal" parent="normal_unfocused">
+ <piece position="entire_background" draw_ops="focus_background"/>
+ <piece position="title" draw_ops="title_focused"/>
+</frame_style>
+
+<frame_style name="maximized_unfocused" parent="normal_unfocused">
+ <button function="maximize" state="normal" draw_ops="restore_button"/>
+ <button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
+</frame_style>
+
+<frame_style name="maximized_focused" parent="normal_focused">
+ <button function="maximize" state="normal" draw_ops="restore_button"/>
+ <button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
+</frame_style>
+
+
+<frame_style_set name="normal">
+<frame focus="yes" state="normal" resize="both" style="normal_focused"/>
+<frame focus="no" state="normal" resize="both" style="normal_unfocused"/>
+<frame focus="yes" state="maximized" style="maximized_focused"/>
+<frame focus="no" state="maximized" style="maximized_unfocused"/>
+<frame focus="yes" state="shaded" style="normal_focused"/>
+<frame focus="no" state="shaded" style="normal_unfocused"/>
+<frame focus="yes" state="maximized_and_shaded" style="maximized_focused"/>
+<frame focus="no" state="maximized_and_shaded" style="maximized_unfocused"/>
+</frame_style_set>
+
+<window type="normal" style_set="normal"/>
+<window type="dialog" style_set="normal"/>
+<window type="modal_dialog" style_set="normal"/>
+<window type="menu" style_set="normal"/>
+<window type="utility" style_set="normal"/>
+
+<menu_icon function="close" state="normal" draw_ops="close_button"/>
+<menu_icon function="maximize" state="normal" draw_ops="maximize_button"/>
+<menu_icon function="unmaximize" state="normal" draw_ops="restore_button"/>
+<menu_icon function="minimize" state="normal" draw_ops="minimize_button"/>
+
+</metacity_theme>
diff --git a/src/themes/Makefile.am b/src/themes/Makefile.am
new file mode 100644
index 00000000..9edfd4b5
--- /dev/null
+++ b/src/themes/Makefile.am
@@ -0,0 +1,29 @@
+THEMES= \
+ Atlanta \
+ Crux
+
+THEME_DIR=$(pkgdatadir)/themes
+
+install-data-local:
+ $(mkinstalldirs) $(DESTDIR)$(THEME_DIR); \
+ for THEME in $(THEMES); do \
+ echo '-- Installing theme '$$THEME; \
+ $(mkinstalldirs) $(DESTDIR)$(THEME_DIR)/$$THEME; \
+ (installfiles=`find $(srcdir)/$$THEME -name "*.png" -o -name "*.xml"`; \
+ for i in $$installfiles; do \
+ echo '-- Installing '$$i ; \
+ $(INSTALL_DATA) $$i $(DESTDIR)$(THEME_DIR)/$$THEME; \
+ done) \
+ done
+
+dist-hook:
+ mkdir $(distdir)/themes; \
+ for THEME in $(THEMES); do \
+ echo '-- Disting theme '$$THEME; \
+ mkdir $(distdir)/$$THEME; \
+ (installfiles=`find $(srcdir)/$$THEME -name "*.png" -o -name "*.xml"`; \
+ for i in $$installfiles; do \
+ echo '-- Disting '$$i ; \
+ cp $$i $(distdir)/$$THEME; \
+ done) \
+ done