Permalink
Browse files

窗口按钮完成。(关闭,最大化,最小化)

通过图片改变按钮外观的办法。
1.主要处理动作在expose事件处理函数中。在画完之后,返回值必需是[
TRUE!否则,按钮原始的expose处理函数会继续绘制按钮,覆盖先前
绘制的图片。
2.由于绘制图片需要设定其实坐标,而且,所有的坐标都是相对于窗口的。
因此,必需获得当前按钮的位置才能正确的绘制图片到相应的位置。
通过函数gtk_widget_get_allocation函数,可以获得widget的Allocation
信息,其中包含按钮的位置坐标和大小。
  • Loading branch information...
kernelhcy committed Jan 25, 2011
1 parent 5b0d639 commit c6f2bde30d42e7ecafd8dd61fb7aa353ebd53ffe
Showing with 68,056 additions and 745 deletions.
  1. +25 −1 Makefile.in
  2. +193 −0 aclocal.m4
  3. +2,284 −27 autom4te.cache/output.1
  4. +13,580 −0 autom4te.cache/output.3
  5. +19,094 −0 autom4te.cache/output.4
  6. +15,711 −0 autom4te.cache/output.5
  7. +726 −0 autom4te.cache/requests
  8. +827 −503 autom4te.cache/traces.1
  9. +2,360 −0 autom4te.cache/traces.3
  10. +6,238 −0 autom4te.cache/traces.4
  11. +2,707 −0 autom4te.cache/traces.5
  12. +143 −0 build-aux/compile
  13. 0 build-aux/config.rpath
  14. +107 −4 config.h.in
  15. +2,298 −41 configure
  16. +201 −6 configure.ac
  17. +210 −0 configure.opfetion
  18. +1 −1 src/Makefile.am
  19. +24 −1 src/Makefile.in
  20. +23 −0 src/cli/Makefile.in
  21. +23 −0 src/comm/Makefile.in
  22. +7 −0 src/gui/Makefile.am
  23. +251 −20 src/gui/Makefile.in
  24. +34 −0 src/gui/constval.h
  25. +33 −0 src/gui/qq.c
  26. +238 −0 src/gui/qqbutton.c
  27. +74 −0 src/gui/qqbutton.h
  28. +9 −18 src/gui/qqwindow.c
  29. +3 −0 src/libqq/Makefile.am
  30. +53 −5 src/libqq/Makefile.in
  31. BIN src/misc/All_window_sizeGripFile.bmp
  32. BIN src/misc/Button_close_highlightBackground.bmp
  33. BIN src/misc/Button_close_pushedBackground.bmp
  34. BIN src/misc/Button_colse_normal.bmp
  35. BIN src/misc/Button_max_highlightBackground.bmp
  36. BIN src/misc/Button_max_normalBackground.bmp
  37. BIN src/misc/Button_max_pushedBackground.bmp
  38. BIN src/misc/Button_min_highlightBackground.bmp
  39. BIN src/misc/Button_min_normalBackground.bmp
  40. BIN src/misc/Button_min_pushedBackground.bmp
  41. BIN src/misc/Button_restore_highlightBackground.bmp
  42. BIN src/misc/Button_restore_normal.bmp
  43. BIN src/misc/Button_restore_pushedBackground.bmp
  44. BIN src/misc/LoginPanel/LogoFile/2052/Logining.gif
  45. BIN src/misc/LoginPanel/LogoFile/2052/Logining.gif.keep
  46. BIN src/misc/LoginPanel/LogoFile/2052/Logining_Vip.gif
  47. BIN src/misc/LoginPanel/LogoFile/2052/Logining_Vip.gif.keep
  48. BIN src/misc/LoginPanel/MainPanel_MainFrameTitle_file.png
  49. BIN src/misc/LoginPanel/keep/All_window_sizeGripFile.bmp.keep
  50. BIN src/misc/LoginPanel/keep/Button_close_highlightBackground.bmp.keep
  51. BIN src/misc/LoginPanel/keep/Button_close_pushedBackground.bmp.keep
  52. BIN src/misc/LoginPanel/keep/Button_colse_normal.bmp.keep
  53. BIN src/misc/LoginPanel/keep/Button_max_highlightBackground.bmp.keep
  54. BIN src/misc/LoginPanel/keep/Button_max_normalBackground.bmp.keep
  55. BIN src/misc/LoginPanel/keep/Button_max_pushedBackground.bmp.keep
  56. BIN src/misc/LoginPanel/keep/Button_min_highlightBackground.bmp.keep
  57. BIN src/misc/LoginPanel/keep/Button_min_normalBackground.bmp.keep
  58. BIN src/misc/LoginPanel/keep/Button_min_pushedBackground.bmp.keep
  59. BIN src/misc/LoginPanel/keep/Button_restore_highlightBackground.bmp.keep
  60. BIN src/misc/LoginPanel/keep/Button_restore_normal.bmp.keep
  61. BIN src/misc/LoginPanel/keep/Button_restore_pushedBackground.bmp.keep
  62. BIN src/misc/LoginPanel/keep/LoginPanel_LoginButton_background_background.bmp.keep
  63. BIN src/misc/LoginPanel/keep/LoginPanel_LoginButton_background_foreground.bmp.keep
  64. BIN src/misc/LoginPanel/keep/LoginPanel_LoginButton_pushedAction_sb1_background_T0.bmp.keep
  65. BIN src/misc/LoginPanel/keep/LoginPanel_window_windowBkg.bmp.keep
  66. BIN src/misc/LoginPanel/keep/MainPanel_MainFrameTitle_file.png.keep
  67. BIN src/misc/LoginPanel_LoginButton_background_background.bmp
  68. BIN src/misc/LoginPanel_LoginButton_background_foreground.bmp
  69. BIN src/misc/LoginPanel_LoginButton_pushedAction_sb1_background_T0.bmp
  70. BIN src/misc/LoginPanel_window_windowBkg.bmp
  71. BIN src/misc/Logining.gif
  72. BIN src/misc/MainPanel_Support_DownBackground.bmp
  73. BIN src/misc/MainPanel_Support_NormalBackground.bmp
  74. BIN src/misc/MainPanel_Support_highlightBackground.bmp
  75. +23 −0 src/misc/Makefile.am
  76. +445 −0 src/misc/Makefile.in
  77. BIN src/misc/sound/Classic/Audio.wav
  78. BIN src/misc/sound/Classic/Global.wav
  79. BIN src/misc/sound/Classic/msg.wav
  80. BIN src/misc/sound/Classic/shake.wav
  81. BIN src/misc/sound/Classic/system.wav
  82. 0 src/misc/sound/Makefile.am
  83. BIN src/misc/sound/Office/Audio.wav
  84. BIN src/misc/sound/Office/Global.wav
  85. BIN src/misc/sound/Office/msg.wav
  86. BIN src/misc/sound/Office/shake.wav
  87. BIN src/misc/sound/Office/system.wav
  88. +7 −8 src/test/Makefile.am
  89. +43 −40 src/test/Makefile.in
  90. BIN src/test/testqqwin
  91. +0 −13 src/test/testqqwin.c
  92. +3 −1 src/tool/Makefile.am
  93. +58 −56 src/tool/Makefile.in
View
@@ -36,7 +36,8 @@ host_triplet = @host@
subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
- $(top_srcdir)/configure build-aux/config.guess \
+ $(top_srcdir)/configure build-aux/compile \
+ build-aux/config.guess build-aux/config.rpath \
build-aux/config.sub build-aux/depcomp build-aux/install-sh \
build-aux/ltmain.sh build-aux/missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -128,17 +129,37 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
GREP = @GREP@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
+GTHREAD_LIBS = @GTHREAD_LIBS@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
+LIBSSL_CFLAGS = @LIBSSL_CFLAGS@
+LIBSSL_LIBS = @LIBSSL_LIBS@
LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXSS_CFLAGS = @LIBXSS_CFLAGS@
+LIBXSS_LIBS = @LIBXSS_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -158,6 +179,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
View
@@ -19,6 +19,164 @@ You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])
+# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+# serial 1 (pkg-config-0.24)
+#
+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# 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. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=m4_default([$1], [0.9.0])
+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PKG_CONFIG=""
+ fi
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists. Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+# only at the first occurence in configure.ac, so if the first place
+# it's called might be skipped (such as if it is within an "if", you
+# have to call PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+ m4_default([$2], [:])
+m4_ifvaln([$3], [else
+ $3])dnl
+fi])
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+ pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+ PKG_CHECK_EXISTS([$3],
+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+ [pkg_failed=yes])
+ else
+ pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+ AC_MSG_RESULT([no])
+ _PKG_SHORT_ERRORS_SUPPORTED
+ if test $_pkg_short_errors_supported = yes; then
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
+ else
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+ m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+ ])
+elif test $pkg_failed = untried; then
+ AC_MSG_RESULT([no])
+ m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+ ])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ AC_MSG_RESULT([yes])
+ $3
+fi[]dnl
+])# PKG_CHECK_MODULES
+
# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
@@ -639,6 +797,41 @@ AC_MSG_RESULT([$_am_result])
rm -f confinc confmf
])
+# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 6
+
+# AM_PROG_CC_C_O
+# --------------
+# Like AC_PROG_CC_C_O, but changed for automake.
+AC_DEFUN([AM_PROG_CC_C_O],
+[AC_REQUIRE([AC_PROG_CC_C_O])dnl
+AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
+eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
+if test "$am_t" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+dnl Make sure AC_PROG_CC is never called again, or it will override our
+dnl setting of CC.
+m4_define([AC_PROG_CC],
+ [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
+])
+
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
Oops, something went wrong.

0 comments on commit c6f2bde

Please sign in to comment.