inital gtk2 patch

This commit is contained in:
Thorsten Maerz 2003-10-05 10:10:30 +00:00
parent 1729549232
commit d013515023
116 changed files with 5240 additions and 3637 deletions

130
ChangeLog-gtk2 Normal file
View file

@ -0,0 +1,130 @@
2003-09-14 Takuro Ashie <ashie@homa.ne.jp>
* Enabled to compile on sylpheed-claws.
(tray-icon plugin still cannot compile yet.)
2003-09-06 Takuro Ashie <ashie@homa.ne.jp>
* Updated to 0.9.5.
2003-08-02 Takuro Ashie <ashie@homa.ne.jp>
* Updated to 0.9.4.
* Ported monitoring SSL mechanism to GSource of GLib2
(I don't confirm it)
* Added _gtk2 suffix to key name of font preference to avoid
ovverwriting preference of Gtk+-1.2 version.
2003-06-09 Takuro Ashie <ashie@homa.ne.jp>
* Updated to 0.9.2.
2003-05-30 Takuro Ashie <ashie@homa.ne.jp>
* Updated to 0.9.1.
* Translate po files into UTF-8 when execute autogen.sh.
2003-05-28 Takuro Ashie <ashie@homa.ne.jp>
* Updated to 0.9.0.
2003-04-29 Takuro Ashie <ashie@homa.ne.jp>
* Plugged GError related memory leaks.
2003-04-28 Takuro Ashie <ashie@homa.ne.jp>
* Changed default size of fonts.
* Enabled to set titile font size of warning dialog.
2003-04-23 Takuro Ashie <ashie@homa.ne.jp>
* Embed a sylpheed icon into executable binary on Windows.
2003-04-21 Takuro Ashie <ashie@homa.ne.jp>
* I forgot to traslate character set of element string in src/xml.c.
2003-04-18 Takuro Ashie <ashie@homa.ne.jp>
* Fixed detecting bind_textdomain_codeset in configure.in.
* The bug in which "Example" of "Date fromat" preference isn't displayed
correctly has been fixed.
2003-04-04 Takuro Ashie <ashie@homa.ne.jp>
* Added bind_textdomain_codeset into AC_CHECK_FUNCS.
Replaced AM_GLIB_GNU_GETTEXT to AM_GNU_GETTEXT.
glib-gettextize
Removed intl directory.
Translated po files into UTF-8.
(Thanks! Ryuji Abe)
2003-03-28 Takuro Ashie <ashie@homa.ne.jp>
* The bug which doesn't unscape string in xml.c has been fixed.
2003-03-27 Takuro Ashie <ashie@homa.ne.jp>
* The bug which is failed to translate encoding of file name thorough
file dialog has been fixed.
2003-03-25 Takuro Ashie <ashie@homa.ne.jp>
* Modified to translate file names which is used in inporting/expoting
mbox feature and "Save as" feature into locale encoding.
* Translate file names into locale encoding when "Attache file" and
"Insert file".
* Force set G_BROKEN_FILENAMES environment variable.
* Other minor fixes.
2003-03-17 Takuro Ashie <ashie@homa.ne.jp>
* Modified to treat MH folder's name as locale encoding.
2003-03-16 Takuro Ashie <ashie@homa.ne.jp>
* The bug which clash on switching candidates of auto completion of
addresses, cannot use auto completion in Japanesse is fixed
(Thanks! Tokunaga-san)¡¥
2003-03-14 Takuro Ashie <ashie@homa.ne.jp>
* The bug which cannot switch key accelerator preference has been fixed
(Thanks! smbd-san)¡¥
2003-03-14 Takuro Ashie <ashie@homa.ne.jp>
* version 0.8.11-gtk2-20030314
2003-03-14 Takuro Ashie <ashie@homa.ne.jp>
* The bug in which character set conversion of filtering messages has
been fixed.(Thanks! COCOA-san).
2003-03-13 Takuro Ashie <ashie@homa.ne.jp>
* Revived "Leave space on head" preference in "Message" category.
* A bug which clash when put the cursor to end of buffer and execute
"Wrap current paragraph" was fixed.(Thanks! Tokunaga-san)
2003-03-12 Takuro Ashie <ashie@homa.ne.jp>
* version 0.8.11-gtk2-20030312
2003-03-12 Takuro Ashie <ashie@homa.ne.jp>
* Fixed position of switching account popup (Thanks! Ikezoe-san)¡¥
* Modified to use Pango's API directly for font preference.
* Integrated GtkTextView of textview to one widget.
* Set fonts of header title in textview by "header_title" tag.
* Removed some deprecated codes.
2003-03-11 Takuro Ashie <ashie@homa.ne.jp>
* Updated to 0.8.11.
* Merged cygwin patch(Thanks! Sakai-san).
2003-03-09 Takuro Ashie <ashie@homa.ne.jp>
* version 0.8.10-gtk2-20030309

126
ChangeLog-gtk2.jp Normal file
View file

@ -0,0 +1,126 @@
2003-09-14 Takuro Ashie <ashie@homa.ne.jp>
* sylpheed-clawsでコンパイルできるようにした
(トレイアイコンプラグインはまだコンパイルできない)
2003-09-06 Takuro Ashie <ashie@homa.ne.jp>
* 0.9.5に追従
2003-08-02 Takuro Ashie <ashie@homa.ne.jp>
* 0.9.4に追従
* SSL監視機構をGLib2のGSourceに対応させた(動作未確認)
* フォント設定のキー名に_gtk2サフィックスをつけGtk+-1.2バージョンと
共存できるようにした
2003-06-09 Takuro Ashie <ashie@homa.ne.jp>
* 0.9.2に追従
2003-05-30 Takuro Ashie <ashie@homa.ne.jp>
* 0.9.1に追従
* poファイルはautogen.shで変換するようにした
2003-05-28 Takuro Ashie <ashie@homa.ne.jp>
* 0.9.0に追従
2003-04-29 Takuro Ashie <ashie@homa.ne.jp>
* GErrorのメモリリークを修正
2003-04-28 Takuro Ashie <ashie@homa.ne.jp>
* フォントのデフォルトサイズを変更
* 警告ダイアログのタイトルフォントを設定できるようにした
2003-04-23 Takuro Ashie <ashie@homa.ne.jp>
* Windowsでのコンパイル時に実行ファイルにアイコンを埋め込むようにした
2003-04-21 Takuro Ashie <ashie@homa.ne.jp>
* src/xml.c内でエレメントの文字コード変換が抜けていた問題を修正
2003-04-18 Takuro Ashie <ashie@homa.ne.jp>
* bind_textdomain_codesetの検出を修正
* 日付の書式設定の表示例が正しく表示されていなかったのを修正
2003-04-04 Takuro Ashie <ashie@homa.ne.jp>
* AC_CHECK_FUNCSにbind_textdomain_codesetを追加
AM_GNU_GETTEXTをAM_GLIB_GNU_GETTEXTに置き換え
glib-gettextize
intlディレクトリを削除
poファイルをUTF-8に変換
(Thanks! 安部竜二さん)
2003-03-28 Takuro Ashie <ashie@homa.ne.jp>
* xml.c内でunescape前に文字コード変換を行っていた問題を修正
2003-03-27 Takuro Ashie <ashie@homa.ne.jp>
* ファイル選択ダイアログ経由の処理の際に文字コード変換に失敗していた問題
を修正
2003-03-25 Takuro Ashie <ashie@homa.ne.jp>
* 「mboxファイルのインポート/エクスポート」及び「名前を付けて保存」時の
ファイル名をlocaleの文字コードに変換するようにした
* 「ファイル添付」「ファイル挿入」時のファイル名をlocaleの文字コードに変
換するようにした.
* 強制的に環境変数G_BROKEN_FILENAMESをセットするようにした
* その他細かい修正
2003-03-17 Takuro Ashie <ashie@homa.ne.jp>
* MHフォルダのディレクトリ名をlocaleの文字コードで扱うように修正
2003-03-16 Takuro Ashie <ashie@homa.ne.jp>
* アドレス補完時に候補を切替えると落ちる問題,及び日本語で補完できない問
題を修正(Thanks! 徳永さん)
2003-03-14 Takuro Ashie <ashie@homa.ne.jp>
* キーアクセラレータの設定を切替えられない問題を修正(Thanks! smbdさん)
2003-03-14 Takuro Ashie <ashie@homa.ne.jp>
* version 0.8.11-gtk2-20030314
2003-03-14 Takuro Ashie <ashie@homa.ne.jp>
* 振り分け設定の文字コード変換が壊れていたバグを修正(Thanks! COCOAさん)
2003-03-13 Takuro Ashie <ashie@homa.ne.jp>
* 行間および行頭の空白の設定を復元.
* カーソルを文末に置いた状態で「現在の段落を整形する」を実行すると落ちる
問題を修正(Thanks! 徳永さん)
2003-03-12 Takuro Ashie <ashie@homa.ne.jp>
* version 0.8.11-gtk2-20030312
2003-03-12 Takuro Ashie <ashie@homa.ne.jp>
* アカウント切替えボタンのメニュー出現位置を修正(Thanks! 池添さん)
* フォント設定用のコードをPangoのAPIを直接使用するように変更
* textviewのGtkTextViewウィジェットを一つに統合
* textviewのヘッダタイトルのフォントを「header_title」タグで設定するよう
にした.
* Deprecatedなコードを整理
2003-03-11 Takuro Ashie <ashie@homa.ne.jp>
* ベースを0.8.11に更新.
* cygwinパッチをマージ(Thanks! 酒井さん)
2003-03-09 Takuro Ashie <ashie@homa.ne.jp>
* version 0.8.10-gtk2-20030309

View file

@ -1,8 +1,10 @@
SUBDIRS = ac po src man manual faq tools config intl
SUBDIRS = ac po src man manual faq tools config
EXTRA_DIST = \
ChangeLog.claws \
ChangeLog.jp \
ChangeLog-gtk2 \
ChangeLog-gtk2.jp \
README.claws \
README.jp \
sylpheed-128x128.png \
@ -15,6 +17,8 @@ EXTRA_DIST = \
TODO \
TODO.claws \
TODO.jp \
TODO-gtk2 \
TODO-gtk2.jp \
autogen.sh
if SYLPHEED_GNOME

23
TODO-gtk2 Normal file
View file

@ -0,0 +1,23 @@
Bugfixes
* SSL support seems broken.
* Chracter set conversion
* Modify codeconv.c for UTF-8
* Should we prepare functions for locale <-> UTF-8?
(Use conv_localetodisp()?)
* Character set of file name.
(Should we use g_filename_from_locale() and g_filename_to_locale()?)
* Character set conversion for "Action" feature.
* Character set conversion for jpilot
* vCard is ok?(<- I don't understand about it)
* URI of uri_list_extract_filenames()
* Host name.
* Should we add a argument for length of string?
* Revive ruler of compose(adjust start point)
* Case sensitive searching feature in message.
* Remove all deprecated codes (About 90% completed except CList/CTree)
* Verify all #warning FIXME_GTK2
* Remove all warnings of Gtk+
* Fix other unknown bugs.
Features
* I want a dialog for character set conversion when invoke external editor.

22
TODO-gtk2.jp Normal file
View file

@ -0,0 +1,22 @@
バグフィックス
* SSLサポート
* 文字コード変換のコード見直し
* codeconv.cをUTF-8をメインに修正?
* locale <-> UTF-8 は適当な関数を用意すべき?(conv_localetodisp()を使用?)
* ファイル名の文字コードの扱い
(g_filename_from_locale()及びg_filename_to_locale()を使用すべき?)
* 「アクション」等でコマンドに渡す文字列の文字コード変換
* jpilotの文字コード変換
* vCardは大丈夫?(<-全然分かってない)
* uri_list_extract_filenames()でのURIの扱い
* ホスト名の扱い(事実上,動作には支障無い?)
* 引数に文字列長を加えるべき?
* Composeのルーラを復元(始点の調整)
* メッセージ内検索での大文字/小文字の区別
* Deprecatedなコードを一掃(CList/CTree以外は9割方終了)
* 全ての #warning FIXME_GTK2 を検証/掃除
* Gtk+が吐く全てのWarningを抹殺
* その他全ての未知のバグの修正
機能拡張
* 外部エディタ等に渡す際の文字コード指定用のダイアログがあると良いかも

View file

@ -1,5 +1,9 @@
#!/bin/sh
cd po
/bin/sh poconv.sh
cd ..
aclocal -I ac \
&& libtoolize --force --copy \
&& autoheader \

View file

@ -79,18 +79,58 @@ AC_PROG_YACC
AM_PROG_LIBTOOL
SYLPHEED_ACLOCAL_INCLUDE(ac)
dnl ******************************
dnl Checks for host
dnl ******************************
AC_CANONICAL_HOST
dnl Copied from the official gtk+-2 configure.in
AC_MSG_CHECKING([for some Win32 platform])
case "$host" in
*-*-mingw*|*-*-cygwin*)
platform_win32=yes
LDFLAGS="$LDFLAGS -mwindows"
;;
*)
platform_win32=no
;;
esac
AC_MSG_RESULT([$platform_win32])
AM_CONDITIONAL(PLATFORM_WIN32, test x"$platform_win32" = x"yes")
if test x"$platform_win32" = x"yes"; then
WINDRES=windres
AC_SUBST(WINDRES)
fi
AC_MSG_CHECKING([for native Win32])
case "$host" in
*-*-mingw*)
os_win32=yes
;;
*)
os_win32=no
;;
esac
AC_MSG_RESULT([$os_win32])
AM_CONDITIONAL(OS_WIN32, test x"$os_win32" = x"yes")
case "$target" in
*-darwin*)
CFLAGS="$CFLAGS -traditional-cpp -fno-common"
;;
esac
dnl Checks for iconv
AM_ICONV
dnl for gettext
ALL_LINGUAS="bg cs de el en_GB es fr hr hu it ja ko nl pl pt_BR ru sk sr sv zh_TW.Big5"
AM_GNU_GETTEXT([use-libtool])
GETTEXT_PACKAGE=sylpheed
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Define text domain.])
AM_GLIB_GNU_GETTEXT
dnl AC_CHECK_FUNC(gettext, AC_CHECK_LIB(intl, gettext))
localedir='${prefix}/${DATADIRNAME}/locale'
AC_SUBST(localedir)
@ -187,9 +227,15 @@ dnl ** common code **
dnl *****************
dnl check for glib
AM_PATH_GLIB(1.2.6,,
AM_PATH_GLIB_2_0(2.0.0,,
AC_MSG_ERROR(Test for GLIB failed. See the file 'INSTALL' for help.),
gthread)
gmodule gobject gthread)
dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
syl_save_LIBS=$LIBS
LIBS="$LIBS $GTK_LIBS"
AC_CHECK_FUNCS(bind_textdomain_codeset)
LIBS=$syl_save_LIBS
dnl check for IPv6 option
AC_ARG_ENABLE(ipv6,
@ -240,7 +286,7 @@ dnl ** GTK user interface **
dnl ************************
dnl Checks for GTK
AM_PATH_GTK(1.2.6,,
AM_PATH_GTK_2_0(2.0.0,,
AC_MSG_ERROR(Test for GTK failed. See the file 'INSTALL' for help.))
dnl check if gdk / gtk was compiled with USE_XIM
@ -433,20 +479,14 @@ if test x"$ac_cv_enable_image_viewer_plugin" = xyes; then
[ac_cv_enable_imlib=$enableval], [ac_cv_enable_imlib=yes])
if test "$ac_cv_enable_gdk_pixbuf" = yes; then
AM_PATH_GDK_PIXBUF(0.8.0,
[AC_DEFINE(HAVE_GDK_PIXBUF, 1, Define if you use gdk-pixbuf to support image viewer)
ac_cv_enable_imlib=no], [ac_cv_enable_gdk_pixbuf=no])
fi
if test "$ac_cv_enable_imlib" = yes; then
AM_PATH_GDK_IMLIB(1.9,
AC_DEFINE(HAVE_GDK_IMLIB, 1, Define if you use gdk_imlib to support image viewer),
[ac_cv_enable_imlib=no])
PKG_CHECK_MODULES(GDK_PIXBUF, \
[ gdk-pixbuf-2.0 ],
[ AC_DEFINE(HAVE_GDK_PIXBUF, 1, Define if you use gdk-pixbuf to support image viewer) ],
[ ac_cv_enable_gdk_pixbuf=no ])
fi
if test "$ac_cv_enable_gdk_pixbuf" = yes; then
PLUGINS="image-viewer(gdk-pixbuf) $PLUGINS"
elif test "$ac_cv_enable_imlib" = yes; then
PLUGINS="image-viewer(gdk_imlib) $PLUGINS"
else
ac_cv_enable_image_viewer_plugin=no
fi
@ -496,7 +536,6 @@ dnl ****************************
AC_OUTPUT([
Makefile
sylpheed.spec
intl/Makefile
ac/Makefile
po/Makefile.in
src/common/version.h

View file

@ -1,13 +1,18 @@
# Makefile for PO directory in any package using GNU gettext.
# Copyright (C) 1995-1997, 2000-2003 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
# Makefile for program source directory in GNU NLS utilities package.
# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
#
# This file can be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU General Public
# License but which still want to provide support for the GNU gettext
# functionality.
# Please note that the actual code of GNU gettext is covered by the GNU
# General Public License and is *not* in the public domain.
# This file file be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU Public License
# but which still want to provide support for the GNU gettext functionality.
# Please note that the actual code is *not* freely available.
#
# - Modified by Owen Taylor <otaylor@redhat.com> to use GETTEXT_PACKAGE
# instead of PACKAGE and to look for po2tbl in ./ not in intl/
#
# - Modified by jacob berkman <jacob@ximian.com> to install
# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
PACKAGE = @PACKAGE@
VERSION = @VERSION@
@ -21,333 +26,218 @@ VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
datadir = @datadir@
localedir = $(datadir)/locale
gettextsrcdir = $(datadir)/gettext/po
libdir = @libdir@
localedir = $(libdir)/locale
gnulocaledir = $(datadir)/locale
gettextsrcdir = $(datadir)/glib-2.0/gettext/po
subdir = po
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = @MKINSTALLDIRS@
mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@
CC = @CC@
GENCAT = @GENCAT@
GMSGFMT = @GMSGFMT@
MSGFMT = @MSGFMT@
XGETTEXT = @XGETTEXT@
MSGMERGE = msgmerge
MSGMERGE_UPDATE = @MSGMERGE@ --update
MSGINIT = msginit
MSGCONV = msgconv
MSGFILTER = msgfilter
DEFS = @DEFS@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
INCLUDES = -I.. -I$(top_srcdir)/intl
COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
SOURCES =
POFILES = @POFILES@
GMOFILES = @GMOFILES@
UPDATEPOFILES = @UPDATEPOFILES@
DUMMYPOFILES = @DUMMYPOFILES@
DISTFILES.common = Makefile.in.in remove-potcdate.sin \
$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \
$(POFILES) $(GMOFILES) \
$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \
$(POFILES) $(GMOFILES) $(SOURCES)
POTFILES = \
CATALOGS = @CATALOGS@
# Makevars gets inserted here. (Don't remove this line!)
CATOBJEXT = @CATOBJEXT@
INSTOBJEXT = @INSTOBJEXT@
.SUFFIXES:
.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update
.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
.c.o:
$(COMPILE) $<
.po.pox:
$(MAKE) $(GETTEXT_PACKAGE).pot
$(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*.pox
.po.mo:
@echo "$(MSGFMT) -c -o $@ $<"; \
$(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
$(MSGFMT) -o $@ $<
.po.gmo:
@lang=`echo $* | sed -e 's,.*/,,'`; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
&& rm -f $$file && $(GMSGFMT) -o $$file $<
.sin.sed:
sed -e '/^#/d' $< > t-$@
mv t-$@ $@
.po.cat:
sed -f ../intl/po2msg.sed < $< > $*.msg \
&& rm -f $@ && $(GENCAT) $@ $*.msg
all: all-@USE_NLS@
all-yes: stamp-po
all-yes: $(CATALOGS)
all-no:
# stamp-po is a timestamp denoting the last time at which the CATALOGS have
# been loosely updated. Its purpose is that when a developer or translator
# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
# invocations of "make" will do nothing. This timestamp would not be necessary
# if updating the $(CATALOGS) would always touch them; however, the rule for
# $(POFILES) has been designed to not touch files that don't need to be
# changed.
stamp-po: $(srcdir)/$(DOMAIN).pot
test -z "$(CATALOGS)" || $(MAKE) $(CATALOGS)
@echo "touch stamp-po"
@echo timestamp > stamp-poT
@mv stamp-poT stamp-po
# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
# otherwise packages like GCC can not be built if only parts of the source
# have been downloaded.
# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES)
$(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) --directory=$(top_srcdir) \
--add-comments --keyword=_ --keyword=N_ \
--files-from=$(srcdir)/POTFILES.in \
--copyright-holder='$(COPYRIGHT_HOLDER)' \
--msgid-bugs-address='$(MSGID_BUGS_ADDRESS)'
test ! -f $(DOMAIN).po || { \
if test -f $(srcdir)/$(DOMAIN).pot; then \
sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
else \
rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
fi; \
else \
mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
fi; \
}
# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
# every "make" invocation, only create it when it is missing.
# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
$(srcdir)/$(DOMAIN).pot:
$(MAKE) $(DOMAIN).pot-update
# This target rebuilds a PO file if $(DOMAIN).pot has changed.
# Note that a PO file is not touched if it doesn't need to be changed.
$(POFILES): $(srcdir)/$(DOMAIN).pot
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
&& test ! -f $(GETTEXT_PACKAGE).po \
|| ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \
&& mv $(GETTEXT_PACKAGE).po $(srcdir)/$(GETTEXT_PACKAGE).pot )
install: install-exec install-data
install-exec:
install-data: install-data-@USE_NLS@
if test "$(PACKAGE)" = "gettext-tools"; then \
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
for file in $(DISTFILES.common) Makevars.template; do \
$(INSTALL_DATA) $(srcdir)/$$file \
$(DESTDIR)$(gettextsrcdir)/$$file; \
done; \
for file in Makevars; do \
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
done; \
else \
: ; \
fi
install-data-no: all
install-data-yes: all
$(mkinstalldirs) $(DESTDIR)$(datadir)
if test -r "$(MKINSTALLDIRS)"; then \
$(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
else \
$(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
fi
@catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
dir=$(localedir)/$$lang/LC_MESSAGES; \
$(mkinstalldirs) $(DESTDIR)$$dir; \
if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
$(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
if test -n "$$lc"; then \
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
for file in *; do \
if test -f $$file; then \
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
fi; \
done); \
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
else \
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
:; \
else \
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
fi; \
fi; \
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
case "$$cat" in \
*.gmo) destdir=$(gnulocaledir);; \
*) destdir=$(localedir);; \
esac; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
if test -r "$(MKINSTALLDIRS)"; then \
$(MKINSTALLDIRS) $$dir; \
else \
$(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
fi; \
if test -r $$cat; then \
$(INSTALL_DATA) $$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \
echo "installing $$cat as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \
else \
$(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \
echo "installing $(srcdir)/$$cat as" \
"$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \
fi; \
if test -r $$cat.m; then \
$(INSTALL_DATA) $$cat.m $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \
echo "installing $$cat.m as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \
else \
if test -r $(srcdir)/$$cat.m ; then \
$(INSTALL_DATA) $(srcdir)/$$cat.m \
$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \
echo "installing $(srcdir)/$$cat as" \
"$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \
else \
true; \
fi; \
done; \
fi; \
done
install-strip: install
installdirs: installdirs-exec installdirs-data
installdirs-exec:
installdirs-data: installdirs-data-@USE_NLS@
if test "$(PACKAGE)" = "gettext-tools"; then \
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
if test "$(PACKAGE)" = "glib"; then \
if test -r "$(MKINSTALLDIRS)"; then \
$(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
else \
$(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
fi; \
$(INSTALL_DATA) $(srcdir)/Makefile.in.in \
$(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
else \
: ; \
fi
installdirs-data-no:
installdirs-data-yes:
$(mkinstalldirs) $(DESTDIR)$(datadir)
@catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
dir=$(localedir)/$$lang/LC_MESSAGES; \
$(mkinstalldirs) $(DESTDIR)$$dir; \
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
if test -n "$$lc"; then \
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
for file in *; do \
if test -f $$file; then \
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
fi; \
done); \
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
else \
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
:; \
else \
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
fi; \
fi; \
fi; \
done; \
done
# Define this as empty until I found a useful application.
installcheck:
uninstall: uninstall-exec uninstall-data
uninstall-exec:
uninstall-data: uninstall-data-@USE_NLS@
if test "$(PACKAGE)" = "gettext-tools"; then \
for file in $(DISTFILES.common) Makevars.template; do \
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
done; \
else \
: ; \
fi
uninstall-data-no:
uninstall-data-yes:
uninstall:
catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
done; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \
rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \
rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \
rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \
done
rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in
check: all
info dvi ps pdf html tags TAGS ctags CTAGS ID:
dvi info tags TAGS ID:
mostlyclean:
rm -f remove-potcdate.sed
rm -f stamp-poT
rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
rm -f core core.* *.pox $(GETTEXT_PACKAGE).po *.old.po cat-id-tbl.tmp
rm -fr *.o
clean: mostlyclean
distclean: clean
rm -f Makefile Makefile.in POTFILES *.mo
rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
maintainer-clean: distclean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
rm -f stamp-po $(GMOFILES)
rm -f $(GMOFILES)
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
dist distdir:
$(MAKE) update-po
@$(MAKE) dist2
# This is a separate target because 'update-po' must be executed before.
dist2: $(DISTFILES)
distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir)
dist distdir: update-po $(DISTFILES)
dists="$(DISTFILES)"; \
if test "$(PACKAGE)" = "gettext-tools"; then \
dists="$$dists Makevars.template"; \
fi; \
if test -f $(srcdir)/ChangeLog; then \
dists="$$dists ChangeLog"; \
fi; \
for i in 0 1 2 3 4 5 6 7 8 9; do \
if test -f $(srcdir)/ChangeLog.$$i; then \
dists="$$dists ChangeLog.$$i"; \
fi; \
done; \
if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
for file in $$dists; do \
if test -f $$file; then \
cp -p $$file $(distdir); \
else \
cp -p $(srcdir)/$$file $(distdir); \
fi; \
ln $(srcdir)/$$file $(distdir) 2> /dev/null \
|| cp -p $(srcdir)/$$file $(distdir); \
done
update-po: Makefile
$(MAKE) $(DOMAIN).pot-update
test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
$(MAKE) update-gmo
# General rule for updating PO files.
.nop.po-update:
@lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
tmpdir=`pwd`; \
echo "$$lang:"; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
$(MAKE) $(GETTEXT_PACKAGE).pot
cd $(srcdir); \
if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
rm -f $$tmpdir/$$lang.new.po; \
catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
mv $$lang.po $$lang.old.po; \
echo "$$lang:"; \
if $(MSGMERGE) $$lang.old.po $(GETTEXT_PACKAGE).pot -o $$lang.po; then \
rm -f $$lang.old.po; \
else \
if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
:; \
else \
echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
exit 1; \
fi; \
echo "msgmerge for $$cat failed!"; \
rm -f $$lang.po; \
mv $$lang.old.po $$lang.po; \
fi; \
else \
echo "msgmerge for $$lang.po failed!" 1>&2; \
rm -f $$tmpdir/$$lang.new.po; \
fi
done
$(DUMMYPOFILES):
# POTFILES is created from POTFILES.in by stripping comments, empty lines
# and Intltool tags (enclosed in square brackets), and appending a full
# relative path to them
POTFILES: POTFILES.in
( if test 'x$(srcdir)' != 'x.'; then \
posrcprefix='$(top_srcdir)/'; \
else \
posrcprefix="../"; \
fi; \
rm -f $@-t $@ \
&& (sed -e '/^#/d' \
-e "s/^\[.*\] +//" \
-e '/^[ ]*$$/d' \
-e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
| sed -e '$$s/\\$$//') > $@-t \
&& chmod a-w $@-t \
&& mv $@-t $@ )
update-gmo: Makefile $(GMOFILES)
@:
Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@
cd $(top_builddir) \
Makefile: Makefile.in.in ../config.status POTFILES
cd .. \
&& CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
$(SHELL) ./config.status
force:
# Tell versions [3.59,3.63) of GNU make not to export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View file

@ -1,5 +1,19 @@
SUBDIRS = common gtk plugins
if PLATFORM_WIN32
SYLPHEED_RES = sylpheed.res
sylpheed.rc:
echo "SYLPHEED ICON sylpheed.ico" > sylpheed.rc
sylpheed.res: sylpheed.rc
$(WINDRES) $< -O coff -o $@
endif
bin_PROGRAMS = sylpheed
sylpheed_SOURCES = \
@ -246,6 +260,7 @@ BUILT_SOURCES = \
quote_fmt_parse.h
EXTRA_DIST = \
sylpheed.ico \
pixmaps/address_book.xpm \
pixmaps/address_search.xpm \
pixmaps/address.xpm \
@ -346,7 +361,8 @@ sylpheed_LDADD = \
$(GPGME_LIBS) \
$(LDAP_LIBS) \
$(OPENSSL_LIBS) \
$(LIBICONV)
$(LIBICONV) \
$(SYLPHEED_RES)
AM_CPPFLAGS = \
-DG_LOG_DOMAIN=\"Sylpheed\" \

View file

@ -99,7 +99,7 @@ static void account_selected (GtkCList *clist,
static void account_row_moved (GtkCList *clist,
gint source_row,
gint dest_row);
static void account_key_pressed (GtkWidget *widget,
static gboolean account_key_pressed (GtkWidget *widget,
GdkEventKey *event,
gpointer data);
@ -549,15 +549,15 @@ static void account_edit_create(void)
debug_print("Creating account edit window...\n");
window = gtk_window_new (GTK_WINDOW_DIALOG);
gtk_widget_set_usize (window, 500, 320);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request (window, 500, 320);
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
gtk_window_set_title (GTK_WINDOW (window), _("Edit accounts"));
gtk_window_set_modal (GTK_WINDOW (window), TRUE);
gtk_signal_connect (GTK_OBJECT (window), "delete_event",
GTK_SIGNAL_FUNC (account_delete_event), NULL);
gtk_signal_connect (GTK_OBJECT (window), "key_press_event",
GTK_SIGNAL_FUNC (account_key_pressed), NULL);
g_signal_connect (G_OBJECT (window), "delete_event",
G_CALLBACK (account_delete_event), NULL);
g_signal_connect (G_OBJECT (window), "key_press_event",
G_CALLBACK (account_key_pressed), NULL);
MANAGE_WINDOW_SIGNALS_CONNECT (window);
gtk_widget_realize(window);
@ -612,10 +612,10 @@ static void account_edit_create(void)
GTK_WIDGET_UNSET_FLAGS(GTK_CLIST(clist)->column[i].button,
GTK_CAN_FOCUS);
gtk_signal_connect (GTK_OBJECT (clist), "select_row",
GTK_SIGNAL_FUNC (account_selected), NULL);
gtk_signal_connect_after (GTK_OBJECT (clist), "row_move",
GTK_SIGNAL_FUNC (account_row_moved), NULL);
g_signal_connect (G_OBJECT (clist), "select_row",
G_CALLBACK (account_selected), NULL);
g_signal_connect_after (G_OBJECT (clist), "row_move",
G_CALLBACK (account_row_moved), NULL);
vbox2 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox2);
@ -624,32 +624,32 @@ static void account_edit_create(void)
add_btn = gtk_button_new_with_label (_("Add"));
gtk_widget_show (add_btn);
gtk_box_pack_start (GTK_BOX (vbox2), add_btn, FALSE, FALSE, 4);
gtk_signal_connect (GTK_OBJECT(add_btn), "clicked",
GTK_SIGNAL_FUNC (account_add), NULL);
g_signal_connect (G_OBJECT(add_btn), "clicked",
G_CALLBACK (account_add), NULL);
edit_btn = gtk_button_new_with_label (_("Edit"));
gtk_widget_show (edit_btn);
gtk_box_pack_start (GTK_BOX (vbox2), edit_btn, FALSE, FALSE, 4);
gtk_signal_connect (GTK_OBJECT(edit_btn), "clicked",
GTK_SIGNAL_FUNC (account_edit_prefs), NULL);
g_signal_connect (G_OBJECT(edit_btn), "clicked",
G_CALLBACK (account_edit_prefs), NULL);
del_btn = gtk_button_new_with_label (_(" Delete "));
gtk_widget_show (del_btn);
gtk_box_pack_start (GTK_BOX (vbox2), del_btn, FALSE, FALSE, 4);
gtk_signal_connect (GTK_OBJECT(del_btn), "clicked",
GTK_SIGNAL_FUNC (account_delete), NULL);
g_signal_connect (G_OBJECT(del_btn), "clicked",
G_CALLBACK (account_delete), NULL);
down_btn = gtk_button_new_with_label (_("Down"));
gtk_widget_show (down_btn);
gtk_box_pack_end (GTK_BOX (vbox2), down_btn, FALSE, FALSE, 4);
gtk_signal_connect (GTK_OBJECT(down_btn), "clicked",
GTK_SIGNAL_FUNC (account_down), NULL);
g_signal_connect (G_OBJECT(down_btn), "clicked",
G_CALLBACK (account_down), NULL);
up_btn = gtk_button_new_with_label (_("Up"));
gtk_widget_show (up_btn);
gtk_box_pack_end (GTK_BOX (vbox2), up_btn, FALSE, FALSE, 4);
gtk_signal_connect (GTK_OBJECT(up_btn), "clicked",
GTK_SIGNAL_FUNC (account_up), NULL);
g_signal_connect (G_OBJECT(up_btn), "clicked",
G_CALLBACK (account_up), NULL);
hbox = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox);
@ -662,8 +662,8 @@ static void account_edit_create(void)
default_btn = gtk_button_new_with_label (_(" Set as default account "));
gtk_widget_show (default_btn);
gtk_box_pack_start (GTK_BOX (vbox2), default_btn, TRUE, FALSE, 0);
gtk_signal_connect (GTK_OBJECT(default_btn), "clicked",
GTK_SIGNAL_FUNC (account_set_default), NULL);
g_signal_connect (G_OBJECT(default_btn), "clicked",
G_CALLBACK (account_set_default), NULL);
gtkut_button_set_create(&hbbox, &close_btn, _("Close"),
NULL, NULL, NULL, NULL);
@ -671,9 +671,9 @@ static void account_edit_create(void)
gtk_box_pack_end (GTK_BOX (hbox), hbbox, FALSE, FALSE, 0);
gtk_widget_grab_default (close_btn);
gtk_signal_connect (GTK_OBJECT (close_btn), "clicked",
GTK_SIGNAL_FUNC (account_edit_close),
NULL);
g_signal_connect (G_OBJECT (close_btn), "clicked",
G_CALLBACK (account_edit_close),
NULL);
stock_pixmap_gdk(clist, STOCK_PIXMAP_MARK, &markxpm, &markxpmmask);
stock_pixmap_gdk(clist, STOCK_PIXMAP_CHECKBOX_ON,
@ -853,11 +853,12 @@ static void account_row_moved(GtkCList *clist, gint source_row, gint dest_row)
gtk_clist_moveto(clist, dest_row, -1, 0.5, 0.0);
}
static void account_key_pressed(GtkWidget *widget, GdkEventKey *event,
gpointer data)
static gboolean account_key_pressed(GtkWidget *widget, GdkEventKey *event,
gpointer data)
{
if (event && event->keyval == GDK_Escape)
account_edit_close();
return FALSE;
}
/* set one CList row or add new row */

View file

@ -26,7 +26,9 @@
#include <glib.h>
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
#include <gdk/gdkx.h>
#ifdef GDK_WINDOWING_X11
# include <gdk/gdkx.h>
#endif /* GDK_WINDOWING_X11 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@ -47,7 +49,6 @@
#include "action.h"
#include "compose.h"
#include "procmsg.h"
#include "gtkstext.h"
#include "textview.h"
typedef struct _Children Children;
@ -74,7 +75,8 @@ struct _Children
gboolean output;
GtkWidget *msg_text;
GdkFont *msgfont;
gboolean is_selection;
};
struct _ChildInfo
@ -115,7 +117,6 @@ static void message_actions_execute (MessageView *msgview,
static gboolean execute_actions (gchar *action,
GSList *msg_list,
GtkWidget *text,
GdkFont *msgfont,
gint body_pos,
MimeInfo *partinfo);
@ -475,7 +476,7 @@ static void compose_actions_execute_cb(Compose *compose, guint action_nb,
return;
}
execute_actions(action, NULL, compose->text, NULL, 0, NULL);
execute_actions(action, NULL, compose->text, 0, NULL);
}
static void mainwin_actions_execute_cb(MainWindow *mainwin, guint action_nb,
@ -507,7 +508,6 @@ static void message_actions_execute(MessageView *msgview, guint action_nb,
gchar *buf;
gchar *action;
GtkWidget *text = NULL;
GdkFont *msgfont = NULL;
guint body_pos = 0;
ActionType action_type;
@ -516,7 +516,7 @@ static void message_actions_execute(MessageView *msgview, guint action_nb,
buf = (gchar *)g_slist_nth_data(prefs_common.actions_list, action_nb);
g_return_if_fail(buf);
g_return_if_fail(action = strstr(buf, ": "));
g_return_if_fail((action = strstr(buf, ": ")));
/* Point to the beginning of the command-line */
action += 2;
@ -524,7 +524,6 @@ static void message_actions_execute(MessageView *msgview, guint action_nb,
textview = messageview_get_current_textview(msgview);
if (textview) {
text = textview->text;
msgfont = textview->msgfont;
body_pos = textview->body_pos;
}
partinfo = messageview_get_selected_mime_part(msgview);
@ -534,11 +533,11 @@ static void message_actions_execute(MessageView *msgview, guint action_nb,
if (action_type & (ACTION_PIPE_OUT | ACTION_INSERT))
msgview->filtered = TRUE;
execute_actions(action, msg_list, text, msgfont, body_pos, partinfo);
execute_actions(action, msg_list, text, body_pos, partinfo);
}
static gboolean execute_actions(gchar *action, GSList *msg_list,
GtkWidget *text, GdkFont *msgfont,
GtkWidget *text,
gint body_pos, MimeInfo *partinfo)
{
GSList *children_list = NULL;
@ -549,11 +548,12 @@ static gboolean execute_actions(gchar *action, GSList *msg_list,
ActionType action_type;
MsgInfo *msginfo;
gchar *cmd;
guint start = 0, end = 0;
gchar *sel_str = NULL;
gchar *msg_str = NULL;
gchar *user_str = NULL;
gchar *user_hidden_str = NULL;
GtkTextIter start_iter, end_iter;
gboolean is_selection = FALSE;
g_return_val_if_fail(action && *action, FALSE);
@ -580,32 +580,21 @@ static gboolean execute_actions(gchar *action, GSList *msg_list,
}
if (text) {
if (GTK_EDITABLE(text)->has_selection) {
start = GTK_EDITABLE(text)->selection_start_pos;
end = GTK_EDITABLE(text)->selection_end_pos;
if (start > end) {
guint tmp;
tmp = start;
start = end;
end = tmp;
}
GtkTextBuffer *textbuf;
if (start == end) {
start = body_pos;
end = gtk_stext_get_length(GTK_STEXT(text));
msg_str = gtk_editable_get_chars
(GTK_EDITABLE(text), start, end);
} else {
sel_str = gtk_editable_get_chars
(GTK_EDITABLE(text), start, end);
msg_str = g_strdup(sel_str);
}
} else {
start = body_pos;
end = gtk_stext_get_length(GTK_STEXT(text));
msg_str = gtk_editable_get_chars(GTK_EDITABLE(text),
start, end);
textbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
is_selection = gtk_text_buffer_get_selection_bounds(textbuf,
&start_iter,
&end_iter);
if (!is_selection) {
gtk_text_buffer_get_start_iter(textbuf, &start_iter);
gtk_text_buffer_get_end_iter(textbuf, &end_iter);
}
msg_str = gtk_text_buffer_get_text(textbuf,
&start_iter, &end_iter,
FALSE);
if (is_selection)
sel_str = g_strdup (msg_str);
}
if (action_type & ACTION_USER_STR) {
@ -626,11 +615,10 @@ static gboolean execute_actions(gchar *action, GSList *msg_list,
}
}
if (action_type & ACTION_PIPE_OUT) {
gtk_stext_freeze(GTK_STEXT(text));
gtk_stext_set_point(GTK_STEXT(text), start);
gtk_stext_forward_delete(GTK_STEXT(text), end - start);
gtk_stext_thaw(GTK_STEXT(text));
if (text && (action_type & ACTION_PIPE_OUT)) {
GtkTextBuffer *textbuf;
textbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
gtk_text_buffer_delete(textbuf, &start_iter, &end_iter);
}
children = g_new0(Children, 1);
@ -638,7 +626,7 @@ static gboolean execute_actions(gchar *action, GSList *msg_list,
children->action = g_strdup(action);
children->action_type = action_type;
children->msg_text = text;
children->msgfont = msgfont;
children->is_selection = is_selection;
if ((action_type & (ACTION_USER_IN | ACTION_USER_HIDDEN_IN)) &&
((action_type & ACTION_SINGLE) == 0 || msg_list_len == 1))
@ -749,7 +737,9 @@ static ChildInfo *fork_child(gchar *cmd, const gchar *msg_str,
if (setpgid(0, 0))
perror("setpgid");
#ifdef GDK_WINDOWING_X11
close(ConnectionNumber(gdk_display));
#endif /* GDK_WINDOWING_X11 */
gch_pid = fork();
@ -1015,22 +1005,24 @@ static void update_io_dialog(Children *children)
if (children->input_hbox)
gtk_widget_set_sensitive(children->input_hbox, FALSE);
gtk_widget_grab_focus(children->close_btn);
gtk_signal_connect(GTK_OBJECT(children->dialog),
"key_press_event",
GTK_SIGNAL_FUNC(io_dialog_key_pressed_cb),
children);
g_signal_connect(G_OBJECT(children->dialog),
"key_press_event",
G_CALLBACK(io_dialog_key_pressed_cb),
children);
}
if (children->output) {
GtkWidget *text = children->text;
gchar *caption;
ChildInfo *child_info;
GtkTextBuffer *textbuf;
GtkTextIter iter, start_iter, end_iter;
gtk_widget_show(children->scrolledwin);
gtk_text_freeze(GTK_TEXT(text));
gtk_text_set_point(GTK_TEXT(text), 0);
gtk_text_forward_delete(GTK_TEXT(text),
gtk_text_get_length(GTK_TEXT(text)));
textbuf = gtk_text_view_get_buffer (GTK_TEXT_VIEW(text));
gtk_text_buffer_get_start_iter (textbuf, &start_iter);
gtk_text_buffer_get_end_iter (textbuf, &end_iter);
iter = start_iter;
for (cur = children->list; cur; cur = cur->next) {
child_info = (ChildInfo *)cur->data;
if (child_info->pid)
@ -1042,14 +1034,13 @@ static void update_io_dialog(Children *children)
(_("--- Ended: %s\n"),
child_info->cmd);
gtk_text_insert(GTK_TEXT(text), NULL, NULL, NULL,
caption, -1);
gtk_text_insert(GTK_TEXT(text), NULL, NULL, NULL,
child_info->output->str, -1);
gtk_text_buffer_insert(textbuf, &iter,
caption, -1);
gtk_text_buffer_insert(textbuf, &iter,
child_info->output->str, -1);
g_free(caption);
child_info->new_out = FALSE;
}
gtk_text_thaw(GTK_TEXT(text));
}
}
@ -1077,11 +1068,11 @@ static void create_io_dialog(Children *children)
gtk_window_set_title(GTK_WINDOW(dialog), _("Action's input/output"));
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
manage_window_set_transient(GTK_WINDOW(dialog));
gtk_signal_connect(GTK_OBJECT(dialog), "delete_event",
GTK_SIGNAL_FUNC(delete_io_dialog_cb), children);
gtk_signal_connect(GTK_OBJECT(dialog), "destroy",
GTK_SIGNAL_FUNC(hide_io_dialog_cb),
children);
g_signal_connect(G_OBJECT(dialog), "delete_event",
G_CALLBACK(delete_io_dialog_cb), children);
g_signal_connect(G_OBJECT(dialog), "destroy",
G_CALLBACK(hide_io_dialog_cb),
children);
vbox = gtk_vbox_new(FALSE, 8);
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), vbox);
@ -1096,14 +1087,11 @@ static void create_io_dialog(Children *children)
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),
GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
gtk_box_pack_start(GTK_BOX(vbox), scrolledwin, TRUE, TRUE, 0);
gtk_widget_set_usize(scrolledwin, 480, 200);
gtk_widget_set_size_request(scrolledwin, 480, 200);
gtk_widget_hide(scrolledwin);
text = gtk_text_new(gtk_scrolled_window_get_hadjustment
(GTK_SCROLLED_WINDOW(scrolledwin)),
gtk_scrolled_window_get_vadjustment
(GTK_SCROLLED_WINDOW(scrolledwin)));
gtk_text_set_editable(GTK_TEXT(text), FALSE);
text = gtk_text_view_new();
gtk_text_view_set_editable(GTK_TEXT_VIEW(text), FALSE);
gtk_container_add(GTK_CONTAINER(scrolledwin), text);
gtk_widget_show(text);
@ -1112,17 +1100,17 @@ static void create_io_dialog(Children *children)
gtk_widget_show(input_hbox);
entry = gtk_entry_new();
gtk_widget_set_usize(entry, 320, -1);
gtk_signal_connect(GTK_OBJECT(entry), "activate",
GTK_SIGNAL_FUNC(send_input), children);
gtk_widget_set_size_request(entry, 320, -1);
g_signal_connect(G_OBJECT(entry), "activate",
G_CALLBACK(send_input), children);
gtk_box_pack_start(GTK_BOX(input_hbox), entry, TRUE, TRUE, 0);
if (children->action_type & ACTION_USER_HIDDEN_IN)
gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
gtk_widget_show(entry);
send_button = gtk_button_new_with_label(_(" Send "));
gtk_signal_connect(GTK_OBJECT(send_button), "clicked",
GTK_SIGNAL_FUNC(send_input), children);
g_signal_connect(G_OBJECT(send_button), "clicked",
G_CALLBACK(send_input), children);
gtk_box_pack_start(GTK_BOX(input_hbox), send_button, FALSE,
FALSE, 0);
gtk_widget_show(send_button);
@ -1152,10 +1140,10 @@ static void create_io_dialog(Children *children)
gtkut_button_set_create(&hbox, &abort_button, _("Abort"),
&close_button, _("Close"), NULL, NULL);
gtk_signal_connect(GTK_OBJECT(abort_button), "clicked",
GTK_SIGNAL_FUNC(kill_children_cb), children);
gtk_signal_connect(GTK_OBJECT(close_button), "clicked",
GTK_SIGNAL_FUNC(hide_io_dialog_cb), children);
g_signal_connect(G_OBJECT(abort_button), "clicked",
G_CALLBACK(kill_children_cb), children);
g_signal_connect(G_OBJECT(close_button), "clicked",
G_CALLBACK(hide_io_dialog_cb), children);
gtk_widget_show(hbox);
if (children->nb)
@ -1240,29 +1228,26 @@ static void catch_output(gpointer data, gint source, GdkInputCondition cond)
if (child_info->children->action_type &
(ACTION_PIPE_OUT | ACTION_INSERT)
&& source == child_info->chld_out) {
gboolean is_selection = FALSE;
GtkWidget *text = child_info->children->msg_text;
GtkTextView *text = GTK_TEXT_VIEW(child_info->children->msg_text);
GtkTextBuffer *textbuf = gtk_text_view_get_buffer(text);
GtkTextIter iter1, iter2;
GtkTextMark *mark;
mark = gtk_text_buffer_get_insert(textbuf);
gtk_text_buffer_get_iter_at_mark(textbuf, &iter1, mark);
gtk_text_buffer_get_iter_at_mark(textbuf, &iter2, mark);
if (GTK_EDITABLE(text)->has_selection)
is_selection = TRUE;
gtk_stext_freeze(GTK_STEXT(text));
while (TRUE) {
c = read(source, buf, sizeof(buf) - 1);
if (c == 0)
break;
gtk_stext_insert(GTK_STEXT(text),
child_info->children->msgfont,
NULL, NULL, buf, c);
gtk_text_buffer_insert(textbuf, &iter2, buf, c);
}
if (is_selection) {
/* Using the select_region draws things. Should not.
* so we just change selection position and
* defere drawing when thawing. Hack?
*/
GTK_EDITABLE(text)->selection_end_pos =
gtk_stext_get_point(GTK_STEXT(text));
if (child_info->children->is_selection) {
gtk_text_buffer_place_cursor(textbuf, &iter1);
gtk_text_buffer_move_mark_by_name
(textbuf, "selection_bound", &iter2);
}
gtk_stext_thaw(GTK_STEXT(text));
} else {
c = read(source, buf, sizeof(buf) - 1);
for (i = 0; i < c; i++)

View file

@ -167,7 +167,7 @@ static void add_address1(const char *str, address_entry *ae)
{
completion_entry *ce1;
ce1 = g_new0(completion_entry, 1),
ce1->string = g_strdup(str);
ce1->string = g_utf8_strdown(str, -1);
/* GCompletion list is case sensitive */
g_strdown(ce1->string);
ce1->ref = ae;
@ -277,69 +277,52 @@ gint start_address_completion(void)
*/
static gchar *get_address_from_edit(GtkEntry *entry, gint *start_pos)
{
const gchar *edit_text;
const gchar *edit_text, *p;
gint cur_pos;
wchar_t *wtext;
wchar_t *wp;
wchar_t rfc_mail_sep;
wchar_t quote;
wchar_t lt;
wchar_t gt;
gboolean in_quote = FALSE;
gboolean in_bracket = FALSE;
gchar *str;
if (mbtowc(&rfc_mail_sep, ",", 1) < 0) return NULL;
if (mbtowc(&quote, "\"", 1) < 0) return NULL;
if (mbtowc(&lt, "<", 1) < 0) return NULL;
if (mbtowc(&gt, ">", 1) < 0) return NULL;
edit_text = gtk_entry_get_text(entry);
if (edit_text == NULL) return NULL;
wtext = strdup_mbstowcs(edit_text);
g_return_val_if_fail(wtext != NULL, NULL);
cur_pos = gtk_editable_get_position(GTK_EDITABLE(entry));
/* scan for a separator. doesn't matter if walk points at null byte. */
for (wp = wtext + cur_pos; wp > wtext; wp--) {
if (*wp == quote)
in_quote ^= TRUE;
else if (!in_quote) {
if (!in_bracket && *wp == rfc_mail_sep)
for (p = g_utf8_offset_to_pointer(edit_text, cur_pos);
p > edit_text;
p = g_utf8_prev_char(p)) {
if (*p == '"') {
in_quote = TRUE;
} else if (!in_quote) {
if (!in_bracket && *p == ',') {
break;
else if (*wp == gt)
} else if (*p == '<')
in_bracket = TRUE;
else if (*wp == lt)
else if (*p == '>')
in_bracket = FALSE;
}
}
/* have something valid */
if (wcslen(wp) == 0) {
g_free(wtext);
if (g_utf8_strlen(p, -1) == 0)
return NULL;
}
#define IS_VALID_CHAR(x) \
(iswalnum(x) || (x) == quote || (x) == lt || ((x) > 0x7f))
(isalnum(x) || (x) == '"' || (x) == '<' || (((unsigned char)(x)) > 0x7f))
/* now scan back until we hit a valid character */
for (; *wp && !IS_VALID_CHAR(*wp); wp++)
for (; *p && !IS_VALID_CHAR(*p); p = g_utf8_next_char(p))
;
#undef IS_VALID_CHAR
if (wcslen(wp) == 0) {
g_free(wtext);
if (g_utf8_strlen(p, -1) == 0)
return NULL;
}
if (start_pos) *start_pos = wp - wtext;
if (start_pos) *start_pos = g_utf8_pointer_to_offset(edit_text, p);
str = strdup_wcstombs(wp);
g_free(wtext);
str = g_strdup(p);
return str;
}
@ -377,13 +360,12 @@ guint complete_address(const gchar *str)
g_return_val_if_fail(str != NULL, 0);
Xstrdup_a(d, str, return 0);
/* g_completion is case sensitive */
d = g_utf8_strdown(str, -1);
clear_completion_cache();
g_completion_prefix = g_strdup(str);
/* g_completion is case sensitive */
g_strdown(d);
result = g_completion_complete(g_completion, d, NULL);
count = g_list_length(result);
@ -409,6 +391,9 @@ guint complete_address(const gchar *str)
}
g_completion_count = count;
g_free(d);
return count;
}
@ -713,14 +698,14 @@ static void addrcompl_resize_window( CompletionWindow *cw ) {
gdk_window_get_geometry( cw->window->window, &x, &y, &width, &height, &depth );
gtk_widget_size_request( cw->clist, &r );
gtk_widget_set_usize( cw->window, width, r.height );
gtk_widget_set_size_request( cw->window, width, r.height );
gtk_widget_show_all( cw->window );
gtk_widget_size_request( cw->clist, &r );
/* Adjust window height to available screen space */
if( ( y + r.height ) > gdk_screen_height() ) {
gtk_window_set_policy( GTK_WINDOW( cw->window ), TRUE, FALSE, FALSE );
gtk_widget_set_usize( cw->window, width, gdk_screen_height() - y );
gtk_widget_set_size_request( cw->window, width, gdk_screen_height() - y );
}
}
@ -919,7 +904,7 @@ static void completion_window_apply_selection(GtkCList *clist, GtkEntry *entry)
/* Move focus to next widget */
parent = GTK_WIDGET(entry)->parent;
if( parent ) {
gtk_container_focus( GTK_CONTAINER(parent), GTK_DIR_TAB_FORWARD );
gtk_widget_child_focus( parent, GTK_DIR_TAB_FORWARD );
}
}
@ -933,9 +918,9 @@ void address_completion_start(GtkWidget *mainwindow)
start_address_completion();
/* register focus change hook */
gtk_signal_connect(GTK_OBJECT(mainwindow), "set_focus",
GTK_SIGNAL_FUNC(address_completion_mainwindow_set_focus),
mainwindow);
g_signal_connect(G_OBJECT(mainwindow), "set_focus",
G_CALLBACK(address_completion_mainwindow_set_focus),
mainwindow);
}
/**
@ -954,16 +939,15 @@ void address_completion_register_entry(GtkEntry *entry)
g_return_if_fail(GTK_IS_ENTRY(entry));
/* add hooked property */
gtk_object_set_data(GTK_OBJECT(entry), ENTRY_DATA_TAB_HOOK, entry);
g_object_set_data(G_OBJECT(entry), ENTRY_DATA_TAB_HOOK, entry);
/* add keypress event */
gtk_signal_connect_full(GTK_OBJECT(entry), "key_press_event",
GTK_SIGNAL_FUNC(address_completion_entry_key_pressed),
NULL,
g_signal_connect_closure
(GTK_OBJECT(entry), "key_press_event",
g_cclosure_new(G_CALLBACK(address_completion_entry_key_pressed),
COMPLETION_UNIQUE_DATA,
NULL,
0,
0); /* magic */
NULL),
FALSE); /* magic */
}
/**
@ -977,17 +961,17 @@ void address_completion_unregister_entry(GtkEntry *entry)
g_return_if_fail(entry != NULL);
g_return_if_fail(GTK_IS_ENTRY(entry));
entry_obj = gtk_object_get_data(GTK_OBJECT(entry), ENTRY_DATA_TAB_HOOK);
entry_obj = g_object_get_data(G_OBJECT(entry), ENTRY_DATA_TAB_HOOK);
g_return_if_fail(entry_obj);
g_return_if_fail(entry_obj == GTK_OBJECT(entry));
/* has the hooked property? */
gtk_object_set_data(GTK_OBJECT(entry), ENTRY_DATA_TAB_HOOK, NULL);
g_object_set_data(G_OBJECT(entry), ENTRY_DATA_TAB_HOOK, NULL);
/* remove the hook */
gtk_signal_disconnect_by_func(GTK_OBJECT(entry),
GTK_SIGNAL_FUNC(address_completion_entry_key_pressed),
COMPLETION_UNIQUE_DATA);
g_signal_handlers_disconnect_by_func(G_OBJECT(entry),
G_CALLBACK(address_completion_entry_key_pressed),
COMPLETION_UNIQUE_DATA);
}
/**
@ -1008,8 +992,11 @@ static void address_completion_mainwindow_set_focus(GtkWindow *window,
GtkWidget *widget,
gpointer data)
{
if (widget)
if (widget && GTK_IS_ENTRY(widget) &&
g_object_get_data(G_OBJECT(widget), ENTRY_DATA_TAB_HOOK)) {
clear_completion_cache();
}
}
/**
@ -1032,14 +1019,14 @@ static gboolean address_completion_entry_key_pressed(GtkEntry *entry,
* reported by the system. */
ev->keyval = GDK_AudibleBell_Enable;
ev->state &= ~GDK_SHIFT_MASK;
gtk_signal_emit_stop_by_name(GTK_OBJECT(entry),
"key_press_event");
/* Create window */
address_completion_create_completion_window(entry);
/* Start remote queries */
addrcompl_start_search();
return TRUE;
}
else {
/* old behaviour */
@ -1058,7 +1045,7 @@ static gboolean address_completion_entry_key_pressed(GtkEntry *entry,
} else
clear_completion_cache();
return TRUE;
return FALSE;
}
/**
* Initialize search term for address completion.
@ -1137,26 +1124,26 @@ static void address_completion_create_completion_window( GtkEntry *entry_ )
gdk_window_get_geometry(entry->window, &x, &y, &width, &height, &depth);
gdk_window_get_deskrelative_origin (entry->window, &x, &y);
y += height;
gtk_widget_set_uposition(window, x, y);
gtk_window_move(GTK_WINDOW(window), x, y);
/* Resize window to fit initial (empty) address list */
gtk_widget_size_request( clist, &r );
gtk_widget_set_usize( window, width, r.height );
gtk_widget_set_size_request( window, width, r.height );
gtk_widget_show_all( window );
gtk_widget_size_request( clist, &r );
/* Setup handlers */
gtk_signal_connect(GTK_OBJECT(clist), "select_row",
GTK_SIGNAL_FUNC(completion_window_select_row),
_compWindow_ );
gtk_signal_connect(GTK_OBJECT(window),
"button-press-event",
GTK_SIGNAL_FUNC(completion_window_button_press),
_compWindow_ );
gtk_signal_connect(GTK_OBJECT(window),
"key-press-event",
GTK_SIGNAL_FUNC(completion_window_key_press),
_compWindow_ );
g_signal_connect(G_OBJECT(clist), "select_row",
G_CALLBACK(completion_window_select_row),
_compWindow_ );
g_signal_connect(G_OBJECT(window),
"button-press-event",
G_CALLBACK(completion_window_button_press),
_compWindow_ );
g_signal_connect(G_OBJECT(window),
"key-press-event",
G_CALLBACK(completion_window_key_press),
_compWindow_ );
gdk_pointer_grab(window->window, TRUE,
GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK,
@ -1307,7 +1294,7 @@ static gboolean completion_window_key_press(GtkWidget *widget,
/* Move focus to next widget */
if( parent ) {
gtk_container_focus( GTK_CONTAINER(parent), GTK_DIR_TAB_FORWARD );
gtk_widget_child_focus( parent, GTK_DIR_TAB_FORWARD );
}
return FALSE;
}
@ -1323,7 +1310,7 @@ static gboolean completion_window_key_press(GtkWidget *widget,
/* Move focus to previous widget */
if( parent ) {
gtk_container_focus( GTK_CONTAINER(parent), GTK_DIR_TAB_BACKWARD );
gtk_widget_child_focus( parent, GTK_DIR_TAB_BACKWARD );
}
return FALSE;
}

View file

@ -104,11 +104,12 @@ static gint addressadd_delete_event( GtkWidget *widget, GdkEventAny *event, gboo
return TRUE;
}
static void addressadd_key_pressed( GtkWidget *widget, GdkEventKey *event, gboolean *cancelled ) {
static gboolean addressadd_key_pressed( GtkWidget *widget, GdkEventKey *event, gboolean *cancelled ) {
if (event && event->keyval == GDK_Escape) {
addressadd_cancelled = TRUE;
gtk_main_quit();
}
return FALSE;
}
static void addressadd_ok( GtkWidget *widget, gboolean *cancelled ) {
@ -127,8 +128,8 @@ static void addressadd_folder_select( GtkCTree *ctree, gint row, gint column,
addressadd_dlg.fiSelected = gtk_clist_get_row_data( GTK_CLIST(ctree), row );
}
static void addressadd_tree_button( GtkCTree *ctree, GdkEventButton *event, gpointer data ) {
if( ! event ) return;
static gboolean addressadd_tree_button( GtkCTree *ctree, GdkEventButton *event, gpointer data ) {
if( ! event ) return FALSE;
if( event->button == 1 ) {
/* Handle double click */
if( event->type == GDK_2BUTTON_PRESS ) {
@ -136,6 +137,8 @@ static void addressadd_tree_button( GtkCTree *ctree, GdkEventButton *event, gpoi
gtk_main_quit();
}
}
return FALSE;
}
static void addressadd_create( void ) {
@ -156,16 +159,16 @@ static void addressadd_create( void ) {
GtkWidget *statusbar;
gint top;
window = gtk_window_new(GTK_WINDOW_DIALOG);
gtk_widget_set_usize( window, 300, 400 );
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request( window, 300, 400 );
gtk_container_set_border_width( GTK_CONTAINER(window), 0 );
gtk_window_set_title( GTK_WINDOW(window), _("Add to address book") );
gtk_window_set_position( GTK_WINDOW(window), GTK_WIN_POS_MOUSE );
gtk_window_set_modal( GTK_WINDOW(window), TRUE );
gtk_signal_connect( GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(addressadd_delete_event), NULL );
gtk_signal_connect( GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(addressadd_key_pressed), NULL );
g_signal_connect( G_OBJECT(window), "delete_event",
G_CALLBACK(addressadd_delete_event), NULL );
g_signal_connect( G_OBJECT(window), "key_press_event",
G_CALLBACK(addressadd_key_pressed), NULL );
vbox = gtk_vbox_new(FALSE, 8);
gtk_container_add(GTK_CONTAINER(window), vbox);
@ -243,14 +246,14 @@ static void addressadd_create( void ) {
gtk_container_set_border_width( GTK_CONTAINER(hbbox), 0 );
gtk_widget_grab_default(ok_btn);
gtk_signal_connect(GTK_OBJECT(ok_btn), "clicked",
GTK_SIGNAL_FUNC(addressadd_ok), NULL);
gtk_signal_connect(GTK_OBJECT(cancel_btn), "clicked",
GTK_SIGNAL_FUNC(addressadd_cancel), NULL);
gtk_signal_connect(GTK_OBJECT(tree_folder), "select_row",
GTK_SIGNAL_FUNC(addressadd_folder_select), NULL);
gtk_signal_connect(GTK_OBJECT(tree_folder), "button_press_event",
GTK_SIGNAL_FUNC(addressadd_tree_button), NULL);
g_signal_connect(G_OBJECT(ok_btn), "clicked",
G_CALLBACK(addressadd_ok), NULL);
g_signal_connect(G_OBJECT(cancel_btn), "clicked",
G_CALLBACK(addressadd_cancel), NULL);
g_signal_connect(G_OBJECT(tree_folder), "select_row",
G_CALLBACK(addressadd_folder_select), NULL);
g_signal_connect(G_OBJECT(tree_folder), "button_press_event",
G_CALLBACK(addressadd_tree_button), NULL);
gtk_widget_show_all(vbox);

View file

@ -199,16 +199,16 @@ static void addressbook_entry_gotfocus (GtkWidget *widget);
static void addressbook_entry_changed (GtkWidget *widget);
#endif
static void addressbook_list_button_pressed (GtkWidget *widget,
static gboolean addressbook_list_button_pressed (GtkWidget *widget,
GdkEventButton *event,
gpointer data);
static void addressbook_list_button_released (GtkWidget *widget,
static gboolean addressbook_list_button_released(GtkWidget *widget,
GdkEventButton *event,
gpointer data);
static void addressbook_tree_button_pressed (GtkWidget *ctree,
static gboolean addressbook_tree_button_pressed (GtkWidget *ctree,
GdkEventButton *event,
gpointer data);
static void addressbook_tree_button_released (GtkWidget *ctree,
static gboolean addressbook_tree_button_released(GtkWidget *ctree,
GdkEventButton *event,
gpointer data);
static void addressbook_popup_close (GtkMenuShell *menu_shell,
@ -295,7 +295,7 @@ static void addressbook_move_nodes_up (GtkCTree *ctree,
GtkCTreeNode *node);
static GtkCTreeNode *addressbook_find_group_node (GtkCTreeNode *parent,
ItemGroup *group);
static void key_pressed (GtkWidget *widget,
static gboolean key_pressed (GtkWidget *widget,
GdkEventKey *event,
gpointer data);
static gint addressbook_treenode_compare_func (GtkCList *clist,
@ -621,15 +621,15 @@ static void addressbook_create(void)
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), _("Address book"));
gtk_widget_set_usize(window, ADDRESSBOOK_WIDTH, ADDRESSBOOK_HEIGHT);
gtk_widget_set_size_request(window, ADDRESSBOOK_WIDTH, ADDRESSBOOK_HEIGHT);
gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, TRUE);
gtk_window_set_wmclass(GTK_WINDOW(window), "addressbook", "Sylpheed");
gtk_widget_realize(window);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(addressbook_close), NULL);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(key_pressed), NULL);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(addressbook_close), NULL);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(key_pressed), NULL);
MANAGE_WINDOW_SIGNALS_CONNECT(window);
vbox = gtk_vbox_new(FALSE, 0);
@ -650,7 +650,7 @@ static void addressbook_create(void)
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(ctree_swin),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_ALWAYS);
gtk_widget_set_usize(ctree_swin, COL_FOLDER_WIDTH + 40, -1);
gtk_widget_set_size_request(ctree_swin, COL_FOLDER_WIDTH + 40, -1);
/* Address index */
ctree = gtk_ctree_new(1, 0);
@ -664,14 +664,14 @@ static void addressbook_create(void)
gtk_clist_set_compare_func(GTK_CLIST(ctree),
addressbook_treenode_compare_func);
gtk_signal_connect(GTK_OBJECT(ctree), "tree_select_row",
GTK_SIGNAL_FUNC(addressbook_tree_selected), NULL);
gtk_signal_connect(GTK_OBJECT(ctree), "button_press_event",
GTK_SIGNAL_FUNC(addressbook_tree_button_pressed),
NULL);
gtk_signal_connect(GTK_OBJECT(ctree), "button_release_event",
GTK_SIGNAL_FUNC(addressbook_tree_button_released),
NULL);
g_signal_connect(G_OBJECT(ctree), "tree_select_row",
G_CALLBACK(addressbook_tree_selected), NULL);
g_signal_connect(G_OBJECT(ctree), "button_press_event",
G_CALLBACK(addressbook_tree_button_pressed),
NULL);
g_signal_connect(G_OBJECT(ctree), "button_release_event",
G_CALLBACK(addressbook_tree_button_released),
NULL);
clist_vbox = gtk_vbox_new(FALSE, 4);
@ -699,22 +699,22 @@ static void addressbook_create(void)
GTK_WIDGET_UNSET_FLAGS(GTK_CLIST(clist)->column[i].button,
GTK_CAN_FOCUS);
gtk_signal_connect(GTK_OBJECT(clist), "tree_select_row",
GTK_SIGNAL_FUNC(addressbook_list_row_selected), NULL);
gtk_signal_connect(GTK_OBJECT(clist), "tree_unselect_row",
GTK_SIGNAL_FUNC(addressbook_list_row_unselected), NULL);
gtk_signal_connect(GTK_OBJECT(clist), "button_press_event",
GTK_SIGNAL_FUNC(addressbook_list_button_pressed),
NULL);
gtk_signal_connect(GTK_OBJECT(clist), "button_release_event",
GTK_SIGNAL_FUNC(addressbook_list_button_released),
NULL);
gtk_signal_connect(GTK_OBJECT(clist), "select_row",
GTK_SIGNAL_FUNC(addressbook_list_selected), NULL);
gtk_signal_connect(GTK_OBJECT(clist), "tree_expand",
GTK_SIGNAL_FUNC(addressbook_person_expand_node), NULL );
gtk_signal_connect(GTK_OBJECT(clist), "tree_collapse",
GTK_SIGNAL_FUNC(addressbook_person_collapse_node), NULL );
g_signal_connect(G_OBJECT(clist), "tree_select_row",
G_CALLBACK(addressbook_list_row_selected), NULL);
g_signal_connect(G_OBJECT(clist), "tree_unselect_row",
G_CALLBACK(addressbook_list_row_unselected), NULL);
g_signal_connect(G_OBJECT(clist), "button_press_event",
G_CALLBACK(addressbook_list_button_pressed),
NULL);
g_signal_connect(G_OBJECT(clist), "button_release_event",
G_CALLBACK(addressbook_list_button_released),
NULL);
g_signal_connect(G_OBJECT(clist), "select_row",
G_CALLBACK(addressbook_list_selected), NULL);
g_signal_connect(G_OBJECT(clist), "tree_expand",
G_CALLBACK(addressbook_person_expand_node), NULL );
g_signal_connect(G_OBJECT(clist), "tree_collapse",
G_CALLBACK(addressbook_person_collapse_node), NULL );
hbox = gtk_hbox_new(FALSE, 4);
gtk_box_pack_start(GTK_BOX(clist_vbox), hbox, FALSE, FALSE, 0);
@ -726,12 +726,12 @@ static void addressbook_create(void)
gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0);
address_completion_register_entry(GTK_ENTRY(entry));
gtk_signal_connect(GTK_OBJECT(entry), "focus_in_event",
GTK_SIGNAL_FUNC(addressbook_entry_gotfocus), NULL);
g_signal_connect(G_OBJECT(entry), "focus_in_event",
G_CALLBACK(addressbook_entry_gotfocus), NULL);
#if 0
gtk_signal_connect(GTK_OBJECT(entry), "changed",
GTK_SIGNAL_FUNC(addressbook_entry_changed), NULL);
g_signal_connect(G_OBJECT(entry), "changed",
G_CALLBACK(addressbook_entry_changed), NULL);
#endif
paned = gtk_hpaned_new();
@ -748,7 +748,7 @@ static void addressbook_create(void)
/* Button panel */
hbbox = gtk_hbutton_box_new();
gtk_button_box_set_layout(GTK_BUTTON_BOX(hbbox), GTK_BUTTONBOX_END);
gtk_button_box_set_spacing(GTK_BUTTON_BOX(hbbox), 2);
gtk_box_set_spacing(GTK_BOX(hbbox), 2);
gtk_box_pack_end(GTK_BOX(vbox), hbbox, FALSE, FALSE, 0);
del_btn = gtk_button_new_with_label(_("Delete"));
@ -761,12 +761,12 @@ static void addressbook_create(void)
GTK_WIDGET_SET_FLAGS(lup_btn, GTK_CAN_DEFAULT);
gtk_box_pack_start(GTK_BOX(hbbox), lup_btn, TRUE, TRUE, 0);
gtk_signal_connect(GTK_OBJECT(del_btn), "clicked",
GTK_SIGNAL_FUNC(addressbook_del_clicked), NULL);
gtk_signal_connect(GTK_OBJECT(reg_btn), "clicked",
GTK_SIGNAL_FUNC(addressbook_reg_clicked), NULL);
gtk_signal_connect(GTK_OBJECT(lup_btn), "clicked",
GTK_SIGNAL_FUNC(addressbook_lup_clicked), NULL);
g_signal_connect(G_OBJECT(del_btn), "clicked",
G_CALLBACK(addressbook_del_clicked), NULL);
g_signal_connect(G_OBJECT(reg_btn), "clicked",
G_CALLBACK(addressbook_reg_clicked), NULL);
g_signal_connect(G_OBJECT(lup_btn), "clicked",
G_CALLBACK(addressbook_lup_clicked), NULL);
to_btn = gtk_button_new_with_label
(prefs_common.trans_hdr ? _("To:") : "To:");
@ -781,15 +781,15 @@ static void addressbook_create(void)
GTK_WIDGET_SET_FLAGS(bcc_btn, GTK_CAN_DEFAULT);
gtk_box_pack_start(GTK_BOX(hbbox), bcc_btn, TRUE, TRUE, 0);
gtk_signal_connect(GTK_OBJECT(to_btn), "clicked",
GTK_SIGNAL_FUNC(addressbook_to_clicked),
GINT_TO_POINTER(COMPOSE_TO));
gtk_signal_connect(GTK_OBJECT(cc_btn), "clicked",
GTK_SIGNAL_FUNC(addressbook_to_clicked),
GINT_TO_POINTER(COMPOSE_CC));
gtk_signal_connect(GTK_OBJECT(bcc_btn), "clicked",
GTK_SIGNAL_FUNC(addressbook_to_clicked),
GINT_TO_POINTER(COMPOSE_BCC));
g_signal_connect(G_OBJECT(to_btn), "clicked",
G_CALLBACK(addressbook_to_clicked),
GINT_TO_POINTER(COMPOSE_TO));
g_signal_connect(G_OBJECT(cc_btn), "clicked",
G_CALLBACK(addressbook_to_clicked),
GINT_TO_POINTER(COMPOSE_CC));
g_signal_connect(G_OBJECT(bcc_btn), "clicked",
G_CALLBACK(addressbook_to_clicked),
GINT_TO_POINTER(COMPOSE_BCC));
/* Build icons for interface */
stock_pixmap_gdk( window, STOCK_PIXMAP_INTERFACE,
@ -830,8 +830,8 @@ static void addressbook_create(void)
n_entries,
"<AddressBookTree>", &tree_factory,
NULL);
gtk_signal_connect(GTK_OBJECT(tree_popup), "selection_done",
GTK_SIGNAL_FUNC(addressbook_popup_close), NULL);
g_signal_connect(G_OBJECT(tree_popup), "selection_done",
G_CALLBACK(addressbook_popup_close), NULL);
n_entries = sizeof(addressbook_list_popup_entries) /
sizeof(addressbook_list_popup_entries[0]);
list_popup = menu_create_items(addressbook_list_popup_entries,
@ -1142,7 +1142,8 @@ static void addressbook_to_clicked(GtkButton *button, gpointer data)
Compose *compose;
AddrSelectItem *item;
AddrItemObject *aio;
gchar *addr;
const gchar *addr;
gchar *tmpaddr;
compose = addrbook.target_compose;
if( ! compose ) return;
@ -1163,10 +1164,10 @@ static void addressbook_to_clicked(GtkButton *button, gpointer data)
aio = item->addressItem;
if( aio->type == ADDR_ITEM_PERSON ||
aio->type == ADDR_ITEM_EMAIL ) {
addr = addressbook_format_address( aio );
tmpaddr = addressbook_format_address( aio );
compose_entry_append(
compose, addr, (ComposeEntryType) data );
g_free( addr );
compose, tmpaddr, (ComposeEntryType) data );
g_free( tmpaddr );
}
else if( aio->type == ADDR_ITEM_GROUP ) {
ItemGroup *group = ( ItemGroup * ) aio;
@ -1174,11 +1175,11 @@ static void addressbook_to_clicked(GtkButton *button, gpointer data)
while( nodeMail ) {
ItemEMail *email = nodeMail->data;
addr = addressbook_format_address(
tmpaddr = addressbook_format_address(
( AddrItemObject * ) email );
compose_entry_append(
compose, addr, (ComposeEntryType) data );
g_free( addr );
compose, tmpaddr, (ComposeEntryType) data );
g_free( tmpaddr );
nodeMail = g_list_next( nodeMail );
}
}
@ -1798,11 +1799,11 @@ static void addressbook_entry_gotfocus( GtkWidget *widget ) {
gtk_editable_select_region( GTK_EDITABLE(addrbook.entry), 0, -1 );
}
static void addressbook_list_button_pressed(GtkWidget *widget,
GdkEventButton *event,
gpointer data)
static gboolean addressbook_list_button_pressed(GtkWidget *widget,
GdkEventButton *event,
gpointer data)
{
if( ! event ) return;
if( ! event ) return FALSE;
addressbook_list_menu_setup();
@ -1810,17 +1811,18 @@ static void addressbook_list_button_pressed(GtkWidget *widget,
gtk_menu_popup( GTK_MENU(addrbook.list_popup), NULL, NULL, NULL, NULL,
event->button, event->time );
}
return FALSE;
}
static void addressbook_list_button_released(GtkWidget *widget,
GdkEventButton *event,
gpointer data)
static gboolean addressbook_list_button_released(GtkWidget *widget,
GdkEventButton *event,
gpointer data)
{
}
static void addressbook_tree_button_pressed(GtkWidget *ctree,
GdkEventButton *event,
gpointer data)
static gboolean addressbook_tree_button_pressed(GtkWidget *ctree,
GdkEventButton *event,
gpointer data)
{
GtkCList *clist = GTK_CLIST(ctree);
gint row, column;
@ -1837,7 +1839,7 @@ static void addressbook_tree_button_pressed(GtkWidget *ctree,
gboolean canTreePaste = FALSE;
gboolean canLookup = FALSE;
if( ! event ) return;
if( ! event ) return FALSE;
addressbook_menubar_set_sensitive( FALSE );
if( gtk_clist_get_selection_info( clist, event->x, event->y, &row, &column ) ) {
@ -1849,7 +1851,7 @@ static void addressbook_tree_button_pressed(GtkWidget *ctree,
menu_set_insensitive_all(GTK_MENU_SHELL(addrbook.tree_popup));
gtk_widget_set_sensitive( addrbook.lup_btn, FALSE );
if( obj == NULL ) return;
if( obj == NULL ) return FALSE;
if( ! addrclip_is_empty( _clipBoard_ ) ) {
canTreePaste = TRUE;
@ -1930,14 +1932,16 @@ static void addressbook_tree_button_pressed(GtkWidget *ctree,
event->button, event->time);
}
return FALSE;
}
static void addressbook_tree_button_released(GtkWidget *ctree,
GdkEventButton *event,
gpointer data)
static gboolean addressbook_tree_button_released(GtkWidget *ctree,
GdkEventButton *event,
gpointer data)
{
gtk_ctree_select(GTK_CTREE(addrbook.ctree), addrbook.opened);
gtkut_ctree_set_focus_row(GTK_CTREE(addrbook.ctree), addrbook.opened);
return FALSE;
}
static void addressbook_popup_close(GtkMenuShell *menu_shell, gpointer data)
@ -3231,10 +3235,11 @@ void addressbook_export_to_file( void ) {
}
}
static void key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
if (event && event->keyval == GDK_Escape)
addressbook_close();
return FALSE;
}
/*

View file

@ -470,7 +470,7 @@ static void addrgather_dlg_create( void ) {
GtkWidget *hbbox;
GtkWidget *hsbox;
window = gtk_window_new( GTK_WINDOW_DIALOG );
window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
gtk_widget_set_usize( window, 380, -1 );
gtk_container_set_border_width(GTK_CONTAINER(window), 0);
gtk_window_set_position( GTK_WINDOW(window), GTK_WIN_POS_CENTER );

View file

@ -33,15 +33,14 @@
#include "inc.h"
#include "log.h"
#include "logwindow.h"
#include "prefs_common.h"
#define TITLE_FONT "-*-helvetica-medium-r-normal--17-*-*-*-*-*-*-*," \
"-*-*-medium-r-normal--16-*-*-*-*-*-*-*,*"
#define MESSAGE_FONT "-*-helvetica-medium-r-normal--14-*-*-*-*-*-*-*," \
"-*-*-medium-r-normal--14-*-*-*-*-*-*-*,*"
#define ALERT_PANEL_WIDTH 380
#define TITLE_HEIGHT 72
#define MESSAGE_HEIGHT 62
#define DEFAULT_TITLE_FONT "Helvetica 16"
static gboolean alertpanel_is_open = FALSE;
static AlertValue value;
@ -63,7 +62,7 @@ static void alertpanel_button_clicked (GtkWidget *widget,
static gint alertpanel_deleted (GtkWidget *widget,
GdkEventAny *event,
gpointer data);
static void alertpanel_close (GtkWidget *widget,
static gboolean alertpanel_close (GtkWidget *widget,
GdkEventAny *event,
gpointer data);
@ -221,8 +220,7 @@ static void alertpanel_create(const gchar *title,
gboolean can_disable,
GtkWidget *custom_widget)
{
static GdkFont *titlefont;
GtkStyle *style;
static PangoFontDescription *font_desc;
GtkWidget *label;
GtkWidget *hbox;
GtkWidget *vbox;
@ -243,13 +241,13 @@ static void alertpanel_create(const gchar *title,
gtk_window_set_policy(GTK_WINDOW(dialog), FALSE, FALSE, FALSE);
gtk_container_set_border_width
(GTK_CONTAINER(GTK_DIALOG(dialog)->action_area), 5);
gtk_window_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
gtk_signal_connect(GTK_OBJECT(dialog), "delete_event",
GTK_SIGNAL_FUNC(alertpanel_deleted),
(gpointer)G_ALERTOTHER);
gtk_signal_connect(GTK_OBJECT(dialog), "key_press_event",
GTK_SIGNAL_FUNC(alertpanel_close),
(gpointer)G_ALERTOTHER);
gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
g_signal_connect(G_OBJECT(dialog), "delete_event",
G_CALLBACK(alertpanel_deleted),
(gpointer)G_ALERTOTHER);
g_signal_connect(G_OBJECT(dialog), "key_press_event",
G_CALLBACK(alertpanel_close),
(gpointer)G_ALERTOTHER);
gtk_widget_realize(dialog);
/* for title label */
@ -263,12 +261,15 @@ static void alertpanel_create(const gchar *title,
label = gtk_label_new(title);
gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 16);
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
style = gtk_style_copy(gtk_widget_get_style(label));
if (!titlefont)
titlefont = gtkut_font_load(TITLE_FONT);
if (titlefont)
style->font = titlefont;
gtk_widget_set_style(label, style);
if (!font_desc) {
gchar *fontstr = prefs_common.titlefont
? prefs_common.titlefont
: DEFAULT_TITLE_FONT;
font_desc = pango_font_description_from_string (fontstr);
}
if (font_desc) {
gtk_widget_modify_font (label, font_desc);
}
/* for message and button(s) */
vbox = gtk_vbox_new(FALSE, 0);
@ -277,7 +278,7 @@ static void alertpanel_create(const gchar *title,
spc_vbox = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox), spc_vbox, FALSE, FALSE, 0);
gtk_widget_set_usize(spc_vbox, -1, 16);
gtk_widget_set_size_request(spc_vbox, -1, 16);
msg_vbox = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox), msg_vbox, FALSE, FALSE, 0);
@ -310,13 +311,13 @@ static void alertpanel_create(const gchar *title,
TRUE);
gtk_box_pack_start(GTK_BOX(hbox), disable_chkbtn,
FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(disable_chkbtn), "toggled",
GTK_SIGNAL_FUNC(alertpanel_button_toggled),
GUINT_TO_POINTER(G_ALERTDISABLE));
g_signal_connect(G_OBJECT(disable_chkbtn), "toggled",
G_CALLBACK(alertpanel_button_toggled),
GUINT_TO_POINTER(G_ALERTDISABLE));
} else {
spc_vbox = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox), spc_vbox, FALSE, FALSE, 0);
gtk_widget_set_usize(spc_vbox, -1, 20);
gtk_widget_set_size_request(spc_vbox, -1, 20);
}
/* for button(s) */
@ -344,17 +345,17 @@ static void alertpanel_create(const gchar *title,
gtk_widget_grab_focus(button3);
}
gtk_signal_connect(GTK_OBJECT(button1), "clicked",
GTK_SIGNAL_FUNC(alertpanel_button_clicked),
GUINT_TO_POINTER(G_ALERTDEFAULT));
g_signal_connect(G_OBJECT(button1), "clicked",
G_CALLBACK(alertpanel_button_clicked),
GUINT_TO_POINTER(G_ALERTDEFAULT));
if (button2_label)
gtk_signal_connect(GTK_OBJECT(button2), "clicked",
GTK_SIGNAL_FUNC(alertpanel_button_clicked),
GUINT_TO_POINTER(G_ALERTALTERNATE));
g_signal_connect(G_OBJECT(button2), "clicked",
G_CALLBACK(alertpanel_button_clicked),
GUINT_TO_POINTER(G_ALERTALTERNATE));
if (button3_label)
gtk_signal_connect(GTK_OBJECT(button3), "clicked",
GTK_SIGNAL_FUNC(alertpanel_button_clicked),
GUINT_TO_POINTER(G_ALERTOTHER));
g_signal_connect(G_OBJECT(button3), "clicked",
G_CALLBACK(alertpanel_button_clicked),
GUINT_TO_POINTER(G_ALERTOTHER));
gtk_widget_show_all(dialog);
}
@ -380,12 +381,13 @@ static gint alertpanel_deleted(GtkWidget *widget, GdkEventAny *event,
return TRUE;
}
static void alertpanel_close(GtkWidget *widget, GdkEventAny *event,
static gboolean alertpanel_close(GtkWidget *widget, GdkEventAny *event,
gpointer data)
{
if (event->type == GDK_KEY_PRESS)
if (((GdkEventKey *)event)->keyval != GDK_Escape)
return;
return FALSE;
value = (value & ~G_ALERT_VALUE_MASK) | (AlertValue)data;
return FALSE;
}

View file

@ -298,6 +298,32 @@ void conv_anytoeuc(gchar *outbuf, gint outlen, const gchar *inbuf)
}
}
void conv_anytoutf8(gchar *outbuf, gint outlen, const gchar *inbuf)
{
gchar *tmpstr = NULL;
switch (conv_guess_ja_encoding(inbuf)) {
case C_ISO_2022_JP:
tmpstr = conv_codeset_strdup(inbuf, CS_ISO_2022_JP, CS_UTF_8);
strncpy2(outbuf, tmpstr, outlen);
g_free(tmpstr);
break;
case C_SHIFT_JIS:
tmpstr = conv_codeset_strdup(inbuf, CS_SHIFT_JIS, CS_UTF_8);
strncpy2(outbuf, tmpstr, outlen);
g_free(tmpstr);
break;
case C_EUC_JP:
tmpstr = conv_codeset_strdup(inbuf, CS_EUC_JP, CS_UTF_8);
strncpy2(outbuf, tmpstr, outlen);
g_free(tmpstr);
break;
default:
strncpy2(outbuf, inbuf, outlen);
break;
}
}
void conv_anytojis(gchar *outbuf, gint outlen, const gchar *inbuf)
{
switch (conv_guess_ja_encoding(inbuf)) {
@ -616,11 +642,19 @@ void conv_euctodisp(gchar *outbuf, gint outlen, const gchar *inbuf)
conv_unreadable_eucjp(outbuf);
}
#warning FIXME_GTK2
#if 0
void conv_anytodisp(gchar *outbuf, gint outlen, const gchar *inbuf)
{
conv_anytoeuc(outbuf, outlen, inbuf);
conv_unreadable_eucjp(outbuf);
}
#else
void conv_anytodisp(gchar *outbuf, gint outlen, const gchar *inbuf)
{
conv_anytoutf8(outbuf, outlen, inbuf);
}
#endif
void conv_ustodisp(gchar *outbuf, gint outlen, const gchar *inbuf)
{
@ -650,7 +684,8 @@ CodeConverter *conv_code_converter_new(const gchar *charset)
CodeConverter *conv;
conv = g_new0(CodeConverter, 1);
conv->code_conv_func = conv_get_code_conv_func(charset, NULL);
#warning FIXME_GTK2
conv->code_conv_func = conv_get_code_conv_func(charset, CS_UTF_8);
conv->charset_str = g_strdup(charset);
conv->charset = conv_get_charset_from_str(charset);
@ -672,7 +707,8 @@ gint conv_convert(CodeConverter *conv, gchar *outbuf, gint outlen,
else {
gchar *str;
str = conv_iconv_strdup(inbuf, conv->charset_str, NULL);
#warning FIXME_GTK2
str = conv_iconv_strdup(inbuf, conv->charset_str, CS_UTF_8);
if (!str)
return -1;
else {
@ -1339,7 +1375,7 @@ gboolean conv_is_multibyte_encoding(CharSet encoding)
const gchar *conv_get_current_locale(void)
{
gchar *cur_locale;
const gchar *cur_locale;
cur_locale = g_getenv("LC_ALL");
if (!cur_locale) cur_locale = g_getenv("LC_CTYPE");
@ -1357,10 +1393,15 @@ void conv_unmime_header_overwrite(gchar *str)
gchar *buf;
gint buflen;
CharSet cur_charset;
const gchar *locale;
cur_charset = conv_get_current_charset();
if (cur_charset == C_EUC_JP) {
#warning FIXME_GTK2
/* Should we always ensure to convert? */
locale = conv_get_current_locale();
if (locale && !strncasecmp(locale, "ja", 2)) {
buflen = strlen(str) * 2 + 1;
Xalloca(buf, buflen, return);
conv_anytodisp(buf, buflen, str);
@ -1377,10 +1418,15 @@ void conv_unmime_header(gchar *outbuf, gint outlen, const gchar *str,
const gchar *charset)
{
CharSet cur_charset;
const gchar *locale;
cur_charset = conv_get_current_charset();
if (cur_charset == C_EUC_JP) {
#warning FIXME_GTK2
/* Should we always ensure to convert? */
locale = conv_get_current_locale();
if (locale && !strncasecmp(locale, "ja", 2)) {
gchar *buf;
gint buflen;

View file

@ -165,6 +165,7 @@ void conv_jistoeuc (gchar *outbuf, gint outlen, const gchar *inbuf);
void conv_euctojis (gchar *outbuf, gint outlen, const gchar *inbuf);
void conv_sjistoeuc (gchar *outbuf, gint outlen, const gchar *inbuf);
void conv_anytoeuc (gchar *outbuf, gint outlen, const gchar *inbuf);
void conv_anytoutf8 (gchar *outbuf, gint outlen, const gchar *inbuf);
void conv_anytojis (gchar *outbuf, gint outlen, const gchar *inbuf);
void conv_unreadable_eucjp (gchar *str);

View file

@ -74,7 +74,8 @@
#define FOLDER_LIST "folderlist.xml"
#define CACHE_FILE ".sylpheed_cache"
#define MARK_FILE ".sylpheed_mark"
#define CACHE_VERSION 20
/* #warning FIXME_GTK2 */
#define CACHE_VERSION 2020
#define MARK_VERSION 2
#define DEFAULT_SIGNATURE ".signature"

View file

@ -1,6 +1,10 @@
#ifndef __INTL_H__
#define __INTL_H__
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif /* HAVE_CONFIG_H */
#ifdef ENABLE_NLS
# include <libintl.h>
# define _(String) gettext(String)
@ -9,6 +13,9 @@
# else
# define N_(String) (String)
# endif /* gettext_noop */
# ifndef HAVE_BIND_TEXTDOMAIN_CODESET
# define bind_textdomain_codeset(Domain, Codeset) (Codeset)
# endif /* HAVE_BIND_TEXTDOMAIN_CODESET */
#else
# define _(String) (String)
# define N_(String) (String)
@ -17,6 +24,7 @@
# define dgettext(Domain,String) (String)
# define dcgettext(Domain,String,Type) (String)
# define bindtextdomain(Domain,Directory) (Domain)
# define bind_textdomain_codeset(Domain, Codeset) (Codeset)
#endif /* ENABLE_NLS */
#endif /* __INTL_H__ */

View file

@ -61,6 +61,7 @@ typedef gint (*SockAddrFunc) (GList *addr_list,
typedef struct _SockConnectData SockConnectData;
typedef struct _SockLookupData SockLookupData;
typedef struct _SockAddrData SockAddrData;
typedef struct _SockSource SockSource;
struct _SockConnectData {
gint id;
@ -92,19 +93,20 @@ struct _SockAddrData {
struct sockaddr *addr;
};
struct _SockSource {
GSource parent;
SockInfo *sock;
};
static guint io_timeout = 60;
static GList *sock_connect_data_list = NULL;
static gboolean sock_prepare (gpointer source_data,
GTimeVal *current_time,
gint *timeout,
gpointer data);
static gboolean sock_check (gpointer source_data,
GTimeVal *current_time,
gpointer user_data);
static gboolean sock_dispatch (gpointer source_data,
GTimeVal *current_time,
static gboolean sock_prepare (GSource *source,
gint *timeout);
static gboolean sock_check (GSource *source);
static gboolean sock_dispatch (GSource *source,
GSourceFunc callback,
gpointer user_data);
GSourceFuncs sock_watch_funcs = {
@ -269,17 +271,15 @@ gboolean sock_is_nonblocking_mode(SockInfo *sock)
}
static gboolean sock_prepare(gpointer source_data, GTimeVal *current_time,
gint *timeout, gpointer data)
static gboolean sock_prepare(GSource *source, gint *timeout)
{
*timeout = 1;
return FALSE;
}
static gboolean sock_check(gpointer source_data, GTimeVal *current_time,
gpointer user_data)
static gboolean sock_check(GSource *source)
{
SockInfo *sock = (SockInfo *)source_data;
SockInfo *sock = ((SockSource *)source)->sock;
struct timeval timeout = {0, 0};
fd_set fds;
GIOCondition condition = sock->condition;
@ -311,10 +311,10 @@ static gboolean sock_check(gpointer source_data, GTimeVal *current_time,
return FD_ISSET(sock->sock, &fds) != 0;
}
static gboolean sock_dispatch(gpointer source_data, GTimeVal *current_time,
static gboolean sock_dispatch(GSource *source, GSourceFunc callback,
gpointer user_data)
{
SockInfo *sock = (SockInfo *)source_data;
SockInfo *sock = ((SockSource *)source)->sock;
return sock->callback(sock, sock->condition, user_data);
}
@ -336,8 +336,14 @@ guint sock_add_watch(SockInfo *sock, GIOCondition condition, SockFunc func,
#if USE_OPENSSL
if (sock->ssl)
return g_source_add(G_PRIORITY_DEFAULT, FALSE,
&sock_watch_funcs, sock, data, NULL);
{
GSource *source = g_source_new(&sock_watch_funcs,
sizeof(SockSource));
((SockSource *) source)->sock = sock;
g_source_set_priority(source, G_PRIORITY_DEFAULT);
g_source_set_can_recurse(source, FALSE);
g_source_attach(source, NULL);
}
#endif
return g_io_add_watch(sock->sock_ch, condition, sock_watch_cb, sock);

View file

@ -22,6 +22,7 @@
#endif
#include "defs.h"
#include <stdlib.h>
#include <glib.h>
#if HAVE_LOCALE_H
@ -93,7 +94,9 @@ gboolean sylpheed_init(int *argc, char ***argv)
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
bind_textdomain_codeset (PACKAGE, "UTF-8");
textdomain(PACKAGE);
putenv("G_BROKEN_FILENAMES=1");
/* backup if old rc file exists */
if (is_file_exist(RC_DIR)) {

View file

@ -29,6 +29,7 @@
#include "intl.h"
#include "utils.h"
#include "template.h"
#include "../codeconv.h"
static GSList *template_list;
@ -38,6 +39,9 @@ static Template *template_load(gchar *filename)
FILE *fp;
gchar buf[BUFFSIZE];
gint bytes_read;
#warning FIXME_GTK2
const gchar *src_codeset = conv_get_current_charset_str();
const gchar *dest_codeset = CS_UTF_8;
if ((fp = fopen(filename, "rb")) == NULL) {
FILE_OP_ERROR(filename, "fopen");
@ -53,18 +57,36 @@ static Template *template_load(gchar *filename)
tmpl->value = NULL;
while (fgets(buf, sizeof(buf), fp) != NULL) {
gchar *tmp = NULL;
if (buf[0] == '\n')
break;
else if (!g_strncasecmp(buf, "Name:", 5))
tmpl->name = g_strdup(g_strstrip(buf + 5));
else if (!g_strncasecmp(buf, "Subject:", 8))
tmpl->subject = g_strdup(g_strstrip(buf + 8));
else if (!g_strncasecmp(buf, "To:", 3))
tmpl->to = g_strdup(g_strstrip(buf + 3));
else if (!g_strncasecmp(buf, "Cc:", 3))
tmpl->cc = g_strdup(g_strstrip(buf + 3));
else if (!g_strncasecmp(buf, "Bcc:", 4))
tmpl->bcc = g_strdup(g_strstrip(buf + 4));
else if (!g_strncasecmp(buf, "Name:", 5)) {
tmp = conv_codeset_strdup(buf + 5,
src_codeset,
dest_codeset);
tmpl->name = tmp ? g_strstrip(tmp) : g_strdup(buf + 5);
} else if (!g_strncasecmp(buf, "Subject:", 8)) {
tmp = conv_codeset_strdup(buf + 8,
src_codeset,
dest_codeset);
tmpl->subject = tmp ? g_strstrip(tmp) : g_strdup(buf + 8);
} else if (!g_strncasecmp(buf, "To:", 3)) {
tmp = conv_codeset_strdup(buf + 3,
src_codeset,
dest_codeset);
tmpl->to = tmp ? g_strstrip(tmp) : g_strdup(buf + 3);
} else if (!g_strncasecmp(buf, "Cc:", 3)) {
tmp = conv_codeset_strdup(buf + 3,
src_codeset,
dest_codeset);
tmpl->cc = tmp ? g_strstrip(tmp) : g_strdup(buf + 3);
} else if (!g_strncasecmp(buf, "Bcc:", 4)) {
tmp = conv_codeset_strdup(buf + 4,
src_codeset,
dest_codeset);
tmpl->bcc = tmp ? g_strstrip(tmp) : g_strdup(buf + 4);
}
}
if (!tmpl->name) {
@ -81,7 +103,10 @@ static Template *template_load(gchar *filename)
}
}
fclose(fp);
tmpl->value = g_strndup(buf, bytes_read);
buf[bytes_read] = '\0';
tmpl->value = conv_codeset_strdup(buf, src_codeset, dest_codeset);
if (!tmpl->value)
tmpl->value = g_strdup(buf);
return tmpl;
}
@ -111,7 +136,7 @@ void template_clear_config(GSList *tmpl_list)
GSList *template_read_config(void)
{
gchar *path;
const gchar *path;
gchar *filename;
DIR *dp;
struct dirent *de;
@ -157,7 +182,7 @@ GSList *template_read_config(void)
void template_write_config(GSList *tmpl_list)
{
gchar *path;
const gchar *path;
GSList *cur;
Template *tmpl;
FILE *fp;
@ -180,6 +205,10 @@ void template_write_config(GSList *tmpl_list)
for (cur = tmpl_list, tmpl_num = 1; cur != NULL;
cur = cur->next, tmpl_num++) {
#warning FIXME_GTK2
const gchar *src_codeset = CS_UTF_8;
const gchar *dest_codeset = conv_get_current_charset_str();
gchar *tmp = NULL;
gchar *filename;
tmpl = cur->data;
@ -190,21 +219,58 @@ void template_write_config(GSList *tmpl_list)
if ((fp = fopen(filename, "wb")) == NULL) {
FILE_OP_ERROR(filename, "fopen");
g_free(filename);
g_free(path);
return;
}
fprintf(fp, "Name: %s\n", tmpl->name);
if (tmpl->subject && *tmpl->subject != '\0')
fprintf(fp, "Subject: %s\n", tmpl->subject);
if (tmpl->to && *tmpl->to != '\0')
fprintf(fp, "To: %s\n", tmpl->to);
if (tmpl->cc && *tmpl->cc != '\0')
fprintf(fp, "Cc: %s\n", tmpl->cc);
if (tmpl->bcc && *tmpl->bcc != '\0')
fprintf(fp, "Bcc: %s\n", tmpl->bcc);
tmp = conv_codeset_strdup(tmpl->name, src_codeset, dest_codeset);
if (!tmp)
tmp = g_strdup(tmpl->name);
fprintf(fp, "Name: %s\n", tmp ? tmp : "");
g_free(tmp);
if (tmpl->subject && *tmpl->subject != '\0') {
tmp = conv_codeset_strdup(tmpl->subject,
src_codeset, dest_codeset);
if (!tmp)
tmp = g_strdup(tmpl->subject);
fprintf(fp, "Subject: %s\n", tmp);
g_free(tmp);
}
if (tmpl->to && *tmpl->to != '\0') {
tmp = conv_codeset_strdup(tmpl->to,
src_codeset, dest_codeset);
if (!tmp)
tmp = g_strdup(tmpl->to);
fprintf(fp, "To: %s\n", tmp);
g_free(tmp);
}
if (tmpl->cc && *tmpl->cc != '\0') {
tmp = conv_codeset_strdup(tmpl->cc,
src_codeset, dest_codeset);
if (!tmp)
tmp = g_strdup(tmpl->cc);
fprintf(fp, "Cc: %s\n", tmp);
g_free(tmp);
}
if (tmpl->bcc && *tmpl->bcc != '\0') {
tmp = conv_codeset_strdup(tmpl->bcc,
src_codeset, dest_codeset);
if (!tmp)
tmp = g_strdup(tmpl->bcc);
fprintf(fp, "Bcc: %s\n", tmp);
g_free(tmp);
}
fputs("\n", fp);
fwrite(tmpl->value, sizeof(gchar) * strlen(tmpl->value), 1, fp);
tmp = conv_codeset_strdup(tmpl->value,
src_codeset, dest_codeset);
if (!tmp)
tmp = g_strdup(tmpl->value);
fwrite(tmp, sizeof(gchar) * strlen(tmp), 1, fp);
g_free(tmp);
fclose(fp);
}
}

View file

@ -46,6 +46,7 @@
#include "intl.h"
#include "utils.h"
#include "socket.h"
#include "../codeconv.h"
#define BUFFSIZE 8192
@ -1393,7 +1394,7 @@ GList *uri_list_extract_filenames(const gchar *uri_list)
{
GList *result = NULL;
const gchar *p, *q;
gchar *file;
gchar *escaped_utf8uri;
p = uri_list;
@ -1401,17 +1402,36 @@ GList *uri_list_extract_filenames(const gchar *uri_list)
if (*p != '#') {
while (isspace(*p)) p++;
if (!strncmp(p, "file:", 5)) {
p += 5;
q = p;
q += 5;
while (*q && *q != '\n' && *q != '\r') q++;
if (q > p) {
gchar *file, *locale_file = NULL;
q--;
while (q > p && isspace(*q)) q--;
file = g_malloc(q - p + 2);
strncpy(file, p, q - p + 1);
file[q - p + 1] = '\0';
result = g_list_append(result,file);
Xalloca(escaped_utf8uri, q - p + 2,
return result);
Xalloca(file, q - p + 2,
return result);
*file = '\0';
strncpy(escaped_utf8uri, p, q - p + 1);
escaped_utf8uri[q - p + 1] = '\0';
decode_uri(file, escaped_utf8uri);
#warning FIXME_GTK2 /* should we use g_filename_from_utf8()? */
/*
* g_filename_from_uri() rejects escaped/locale encoded uri
* string which come from Nautilus.
*/
if (g_utf8_validate(file, -1, NULL))
locale_file
= conv_codeset_strdup(
file + 5,
CS_UTF_8,
conv_get_current_charset_str());
if (!locale_file)
locale_file = g_strdup(file + 5);
result = g_list_append(result, locale_file);
}
}
}
@ -1500,7 +1520,7 @@ gint scan_mailto_url(const gchar *mailto, gchar **to, gchar **cc, gchar **bcc,
* but as long as we are not able to do our own extensions to glibc, we do
* it here.
*/
gchar *get_home_dir(void)
const gchar *get_home_dir(void)
{
#if HAVE_DOSISH_SYSTEM
static gchar *home_dir;
@ -1525,7 +1545,7 @@ gchar *get_home_dir(void)
#endif
}
gchar *get_rc_dir(void)
const gchar *get_rc_dir(void)
{
static gchar *rc_dir = NULL;
@ -1536,7 +1556,7 @@ gchar *get_rc_dir(void)
return rc_dir;
}
gchar *get_news_cache_dir(void)
const gchar *get_news_cache_dir(void)
{
static gchar *news_cache_dir = NULL;
@ -1547,7 +1567,7 @@ gchar *get_news_cache_dir(void)
return news_cache_dir;
}
gchar *get_imap_cache_dir(void)
const gchar *get_imap_cache_dir(void)
{
static gchar *imap_cache_dir = NULL;
@ -1558,7 +1578,7 @@ gchar *get_imap_cache_dir(void)
return imap_cache_dir;
}
gchar *get_mbox_cache_dir(void)
const gchar *get_mbox_cache_dir(void)
{
static gchar *mbox_cache_dir = NULL;
@ -1569,7 +1589,7 @@ gchar *get_mbox_cache_dir(void)
return mbox_cache_dir;
}
gchar *get_mime_tmp_dir(void)
const gchar *get_mime_tmp_dir(void)
{
static gchar *mime_tmp_dir = NULL;
@ -1580,7 +1600,7 @@ gchar *get_mime_tmp_dir(void)
return mime_tmp_dir;
}
gchar *get_template_dir(void)
const gchar *get_template_dir(void)
{
static gchar *template_dir = NULL;
@ -1591,7 +1611,7 @@ gchar *get_template_dir(void)
return template_dir;
}
gchar *get_header_cache_dir(void)
const gchar *get_header_cache_dir(void)
{
static gchar *header_dir = NULL;
@ -1602,7 +1622,7 @@ gchar *get_header_cache_dir(void)
return header_dir;
}
gchar *get_tmp_dir(void)
const gchar *get_tmp_dir(void)
{
static gchar *tmp_dir = NULL;
@ -1624,7 +1644,7 @@ gchar *get_tmp_file(void)
return tmp_file;
}
gchar *get_domain_name(void)
const gchar *get_domain_name(void)
{
static gchar *domain_name = NULL;

View file

@ -313,17 +313,17 @@ gint scan_mailto_url (const gchar *mailto,
gchar **body);
/* return static strings */
gchar *get_home_dir (void);
gchar *get_rc_dir (void);
gchar *get_news_cache_dir (void);
gchar *get_imap_cache_dir (void);
gchar *get_mbox_cache_dir (void);
gchar *get_mime_tmp_dir (void);
gchar *get_template_dir (void);
gchar *get_header_cache_dir (void);
gchar *get_tmp_dir (void);
gchar *get_tmp_file (void);
gchar *get_domain_name (void);
const gchar *get_home_dir (void);
const gchar *get_rc_dir (void);
const gchar *get_news_cache_dir (void);
const gchar *get_imap_cache_dir (void);
const gchar *get_mbox_cache_dir (void);
const gchar *get_mime_tmp_dir (void);
const gchar *get_template_dir (void);
const gchar *get_header_cache_dir (void);
const gchar *get_tmp_dir (void);
gchar *get_tmp_file (void);
const gchar *get_domain_name (void);
/* file / directory handling */
off_t get_file_size (const gchar *file);

View file

@ -24,6 +24,7 @@
#include "xml.h"
#include "utils.h"
#include "../codeconv.h"
#define SPARSE_MEMORY
/* if this is defined all attr.names and tag.names are stored
@ -231,8 +232,8 @@ gint xml_parse_next_tag(XMLFile *file)
/* parse attributes ( name=value ) */
while (*bufp) {
XMLAttr *attr;
gchar *attr_name;
gchar *attr_value;
gchar *attr_name, *attr_value;
gchar *utf8attr_name, *utf8attr_value;
gchar *p;
gchar quote;
@ -264,9 +265,31 @@ gint xml_parse_next_tag(XMLFile *file)
xml_unescape_str(attr_value);
attr = g_new(XMLAttr, 1);
attr->name = XML_STRING_ADD(attr_name);
attr->value = g_strdup(attr_value);
#warning FIXME_GTK2
utf8attr_name = conv_codeset_strdup
(attr_name,
conv_get_current_charset_str(),
CS_UTF_8);
utf8attr_value = conv_codeset_strdup
(attr_value,
conv_get_current_charset_str(),
CS_UTF_8);
if (!utf8attr_name) {
g_warning("xml_parse_next_tag(): "
"faild to convert character set of attr_name\n");
utf8attr_name = g_strdup(attr_name);
}
if (!utf8attr_value) {
g_warning("xml_parse_next_tag(): "
"faild to convert character set of attr_value\n");
utf8attr_value = g_strdup(attr_value);
}
attr->name = XML_STRING_ADD(utf8attr_name);
attr->value = utf8attr_value;
tag->attr = g_list_append(tag->attr, attr);
g_free(utf8attr_name);
}
return 0;
@ -315,6 +338,7 @@ gchar *xml_get_element(XMLFile *file)
{
gchar *str;
gchar *end;
gchar *utf8str;
while ((end = strchr(file->bufp, '<')) == NULL)
if (xml_read_line(file) < 0) return NULL;
@ -335,7 +359,18 @@ gchar *xml_get_element(XMLFile *file)
return NULL;
}
return str;
utf8str = conv_codeset_strdup
(str,
conv_get_current_charset_str(),
CS_UTF_8);
if (!utf8str) {
g_warning("xml_get_element(): "
"faild to convert character set.\n");
utf8str = str;
} else
g_free(str);
return utf8str;
}
gint xml_read_line(XMLFile *file)
@ -451,15 +486,25 @@ gint xml_unescape_str(gchar *str)
return 0;
}
#warning FIXME_GTK2
gint xml_file_put_escape_str(FILE *fp, const gchar *str)
{
const gchar *src_codeset = CS_UTF_8;
const gchar *dest_codeset = conv_get_current_charset_str();
gchar *tmpstr = NULL;
const gchar *p;
g_return_val_if_fail(fp != NULL, -1);
if (!str) return 0;
for (p = str; *p != '\0'; p++) {
tmpstr = conv_codeset_strdup(str, src_codeset, dest_codeset);
if (!tmpstr) {
g_warning("xml_file_put_escape_str(): Faild to convert character set.");
tmpstr = g_strdup(str);
}
for (p = tmpstr; *p != '\0'; p++) {
switch (*p) {
case '<':
fputs("&lt;", fp);
@ -481,6 +526,8 @@ gint xml_file_put_escape_str(FILE *fp, const gchar *str)
}
}
g_free(tmpstr);
return 0;
}

File diff suppressed because it is too large Load diff

View file

@ -218,6 +218,8 @@ struct _AttachInfo
off_t size;
};
/*#warning FIXME_GTK2 */
/* attache_files will be locale encode */
Compose *compose_new (PrefsAccount *account,
const gchar *mailto,
GPtrArray *attach_files);

View file

@ -126,11 +126,12 @@ static gint edit_person_delete_event(GtkWidget *widget, GdkEventAny *event, gboo
return TRUE;
}
static void edit_person_key_pressed(GtkWidget *widget, GdkEventKey *event, gboolean *cancelled) {
static gboolean edit_person_key_pressed(GtkWidget *widget, GdkEventKey *event, gboolean *cancelled) {
if (event && event->keyval == GDK_Escape) {
*cancelled = TRUE;
gtk_main_quit();
}
return FALSE;
}
static gchar *_title_new_ = NULL;
@ -474,18 +475,18 @@ static void addressbook_edit_person_dialog_create( gboolean *cancelled ) {
GtkWidget *hsbox;
GtkWidget *statusbar;
window = gtk_window_new(GTK_WINDOW_DIALOG);
gtk_widget_set_usize(window, EDITPERSON_WIDTH, EDITPERSON_HEIGHT );
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window, EDITPERSON_WIDTH, EDITPERSON_HEIGHT );
/* gtk_container_set_border_width(GTK_CONTAINER(window), 0); */
gtk_window_set_title(GTK_WINDOW(window), _("Edit Person Data"));
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(edit_person_delete_event),
cancelled);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(edit_person_key_pressed),
cancelled);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(edit_person_delete_event),
cancelled);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(edit_person_key_pressed),
cancelled);
vbox = gtk_vbox_new(FALSE, 4);
/* gtk_container_set_border_width(GTK_CONTAINER(vbox), BORDER_WIDTH); */
@ -515,12 +516,12 @@ static void addressbook_edit_person_dialog_create( gboolean *cancelled ) {
gtk_box_pack_end(GTK_BOX(vnbox), hbbox, FALSE, FALSE, 0);
gtk_widget_grab_default(ok_btn);
gtk_signal_connect(GTK_OBJECT(ok_btn), "clicked",
GTK_SIGNAL_FUNC(edit_person_ok), cancelled);
gtk_signal_connect(GTK_OBJECT(cancel_btn), "clicked",
GTK_SIGNAL_FUNC(edit_person_cancel), cancelled);
gtk_signal_connect(GTK_OBJECT(notebook), "switch_page",
GTK_SIGNAL_FUNC(edit_person_switch_page), NULL );
g_signal_connect(G_OBJECT(ok_btn), "clicked",
G_CALLBACK(edit_person_ok), cancelled);
g_signal_connect(G_OBJECT(cancel_btn), "clicked",
G_CALLBACK(edit_person_cancel), cancelled);
g_signal_connect(G_OBJECT(notebook), "switch_page",
G_CALLBACK(edit_person_switch_page), NULL );
gtk_widget_show_all(vbox);
@ -702,7 +703,7 @@ static void addressbook_edit_person_page_email( gint pageNum, gchar *pageLbl ) {
vbuttonbox = gtk_vbutton_box_new();
gtk_button_box_set_layout( GTK_BUTTON_BOX(vbuttonbox), GTK_BUTTONBOX_START );
gtk_button_box_set_spacing( GTK_BUTTON_BOX(vbuttonbox), 8 );
gtk_box_set_spacing( GTK_BOX(vbuttonbox), 8 );
gtk_container_set_border_width( GTK_CONTAINER(vbuttonbox), 4 );
gtk_container_add( GTK_CONTAINER(vboxb), vbuttonbox );
@ -728,20 +729,20 @@ static void addressbook_edit_person_page_email( gint pageNum, gchar *pageLbl ) {
gtk_widget_show_all(vbox);
/* Event handlers */
gtk_signal_connect( GTK_OBJECT(clist), "select_row",
GTK_SIGNAL_FUNC( edit_person_email_list_selected), NULL );
gtk_signal_connect( GTK_OBJECT(buttonUp), "clicked",
GTK_SIGNAL_FUNC( edit_person_email_move_up ), NULL );
gtk_signal_connect( GTK_OBJECT(buttonDown), "clicked",
GTK_SIGNAL_FUNC( edit_person_email_move_down ), NULL );
gtk_signal_connect( GTK_OBJECT(buttonDel), "clicked",
GTK_SIGNAL_FUNC( edit_person_email_delete ), NULL );
gtk_signal_connect( GTK_OBJECT(buttonMod), "clicked",
GTK_SIGNAL_FUNC( edit_person_email_modify ), NULL );
gtk_signal_connect( GTK_OBJECT(buttonAdd), "clicked",
GTK_SIGNAL_FUNC( edit_person_email_add ), NULL );
gtk_signal_connect( GTK_OBJECT(buttonClr), "clicked",
GTK_SIGNAL_FUNC( edit_person_email_clear ), NULL );
g_signal_connect( G_OBJECT(clist), "select_row",
G_CALLBACK( edit_person_email_list_selected), NULL );
g_signal_connect( G_OBJECT(buttonUp), "clicked",
G_CALLBACK( edit_person_email_move_up ), NULL );
g_signal_connect( G_OBJECT(buttonDown), "clicked",
G_CALLBACK( edit_person_email_move_down ), NULL );
g_signal_connect( G_OBJECT(buttonDel), "clicked",
G_CALLBACK( edit_person_email_delete ), NULL );
g_signal_connect( G_OBJECT(buttonMod), "clicked",
G_CALLBACK( edit_person_email_modify ), NULL );
g_signal_connect( G_OBJECT(buttonAdd), "clicked",
G_CALLBACK( edit_person_email_add ), NULL );
g_signal_connect( G_OBJECT(buttonClr), "clicked",
G_CALLBACK( edit_person_email_clear ), NULL );
personeditdlg.clist_email = clist;
personeditdlg.entry_email = entry_email;
@ -842,7 +843,7 @@ static void addressbook_edit_person_page_attrib( gint pageNum, gchar *pageLbl )
vbuttonbox = gtk_vbutton_box_new();
gtk_button_box_set_layout( GTK_BUTTON_BOX(vbuttonbox), GTK_BUTTONBOX_START );
gtk_button_box_set_spacing( GTK_BUTTON_BOX(vbuttonbox), 8 );
gtk_box_set_spacing( GTK_BOX(vbuttonbox), 8 );
gtk_container_set_border_width( GTK_CONTAINER(vbuttonbox), 4 );
gtk_container_add( GTK_CONTAINER(vboxb), vbuttonbox );
@ -862,16 +863,16 @@ static void addressbook_edit_person_page_attrib( gint pageNum, gchar *pageLbl )
gtk_widget_show_all(vbox);
/* Event handlers */
gtk_signal_connect( GTK_OBJECT(clist), "select_row",
GTK_SIGNAL_FUNC( edit_person_attrib_list_selected), NULL );
gtk_signal_connect( GTK_OBJECT(buttonDel), "clicked",
GTK_SIGNAL_FUNC( edit_person_attrib_delete ), NULL );
gtk_signal_connect( GTK_OBJECT(buttonMod), "clicked",
GTK_SIGNAL_FUNC( edit_person_attrib_modify ), NULL );
gtk_signal_connect( GTK_OBJECT(buttonAdd), "clicked",
GTK_SIGNAL_FUNC( edit_person_attrib_add ), NULL );
gtk_signal_connect( GTK_OBJECT(buttonClr), "clicked",
GTK_SIGNAL_FUNC( edit_person_attrib_clear ), NULL );
g_signal_connect( G_OBJECT(clist), "select_row",
G_CALLBACK( edit_person_attrib_list_selected), NULL );
g_signal_connect( G_OBJECT(buttonDel), "clicked",
G_CALLBACK( edit_person_attrib_delete ), NULL );
g_signal_connect( G_OBJECT(buttonMod), "clicked",
G_CALLBACK( edit_person_attrib_modify ), NULL );
g_signal_connect( G_OBJECT(buttonAdd), "clicked",
G_CALLBACK( edit_person_attrib_add ), NULL );
g_signal_connect( G_OBJECT(buttonClr), "clicked",
G_CALLBACK( edit_person_attrib_clear ), NULL );
personeditdlg.clist_attrib = clist;
personeditdlg.entry_atname = entry_name;
@ -968,10 +969,10 @@ ItemPerson *addressbook_edit_person( AddressBookFile *abf, ItemFolder *parent, I
/* Select appropriate start page */
if( pgMail ) {
gtk_notebook_set_page( GTK_NOTEBOOK(personeditdlg.notebook), PAGE_EMAIL );
gtk_notebook_set_current_page( GTK_NOTEBOOK(personeditdlg.notebook), PAGE_EMAIL );
}
else {
gtk_notebook_set_page( GTK_NOTEBOOK(personeditdlg.notebook), PAGE_BASIC );
gtk_notebook_set_current_page( GTK_NOTEBOOK(personeditdlg.notebook), PAGE_BASIC );
}
gtk_clist_select_row( GTK_CLIST(personeditdlg.clist_email), 0, 0 );

View file

@ -95,11 +95,12 @@ static gint edit_book_delete_event( GtkWidget *widget, GdkEventAny *event, gbool
return TRUE;
}
static void edit_book_key_pressed( GtkWidget *widget, GdkEventKey *event, gboolean *cancelled ) {
static gboolean edit_book_key_pressed( GtkWidget *widget, GdkEventKey *event, gboolean *cancelled ) {
if (event && event->keyval == GDK_Escape) {
*cancelled = TRUE;
gtk_main_quit();
}
return FALSE;
}
static void edit_book_file_check( void ) {
@ -146,18 +147,18 @@ static void addressbook_edit_book_create( gboolean *cancelled ) {
GtkWidget *hsbox;
gint top;
window = gtk_window_new(GTK_WINDOW_DIALOG);
gtk_widget_set_usize(window, 450, -1);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window, 450, -1);
gtk_container_set_border_width( GTK_CONTAINER(window), 0 );
gtk_window_set_title(GTK_WINDOW(window), _("Edit Addressbook"));
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(edit_book_delete_event),
cancelled);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(edit_book_key_pressed),
cancelled);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(edit_book_delete_event),
cancelled);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(edit_book_key_pressed),
cancelled);
vbox = gtk_vbox_new(FALSE, 8);
gtk_container_add(GTK_CONTAINER(window), vbox);
@ -210,16 +211,16 @@ static void addressbook_edit_book_create( gboolean *cancelled ) {
hsep = gtk_hseparator_new();
gtk_box_pack_end(GTK_BOX(vbox), hsep, FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(name_entry), "focus_in_event",
GTK_SIGNAL_FUNC(edit_book_name_focus), NULL );
gtk_signal_connect(GTK_OBJECT(ok_btn), "clicked",
GTK_SIGNAL_FUNC(edit_book_ok), cancelled);
gtk_signal_connect(GTK_OBJECT(cancel_btn), "clicked",
GTK_SIGNAL_FUNC(edit_book_cancel), cancelled);
/* gtk_signal_connect(GTK_OBJECT(file_btn), "clicked", */
/* GTK_SIGNAL_FUNC(edit_book_file_select), NULL); */
gtk_signal_connect(GTK_OBJECT(check_btn), "clicked",
GTK_SIGNAL_FUNC(edit_book_file_check), NULL);
g_signal_connect(G_OBJECT(name_entry), "focus_in_event",
G_CALLBACK(edit_book_name_focus), NULL );
g_signal_connect(G_OBJECT(ok_btn), "clicked",
G_CALLBACK(edit_book_ok), cancelled);
g_signal_connect(G_OBJECT(cancel_btn), "clicked",
G_CALLBACK(edit_book_cancel), cancelled);
/* g_signal_connect(G_OBJECT(file_btn), "clicked", */
/* G_CALLBACK(edit_book_file_select), NULL); */
g_signal_connect(G_OBJECT(check_btn), "clicked",
G_CALLBACK(edit_book_file_check), NULL);
gtk_widget_show_all(vbox);

View file

@ -116,11 +116,12 @@ static gint edit_group_delete_event(GtkWidget *widget, GdkEventAny *event, gbool
return TRUE;
}
static void edit_group_key_pressed(GtkWidget *widget, GdkEventKey *event, gboolean *cancelled) {
static gboolean edit_group_key_pressed(GtkWidget *widget, GdkEventKey *event, gboolean *cancelled) {
if (event && event->keyval == GDK_Escape) {
*cancelled = TRUE;
gtk_main_quit();
}
return FALSE;
}
static gchar *edit_group_format_item_clist( ItemPerson *person, ItemEMail *email ) {
@ -197,22 +198,24 @@ static void edit_group_to_avail( GtkWidget *widget, gpointer data ) {
}
}
static void edit_group_list_group_button( GtkCList *clist, GdkEventButton *event, gpointer data ) {
if( ! event ) return;
static gboolean edit_group_list_group_button( GtkCList *clist, GdkEventButton *event, gpointer data ) {
if( ! event ) return FALSE;
if( event->button == 1 ) {
if( event->type == GDK_2BUTTON_PRESS ) {
edit_group_to_avail( NULL, NULL );
}
}
return FALSE;
}
static void edit_group_list_avail_button( GtkCList *clist, GdkEventButton *event, gpointer data ) {
if( ! event ) return;
static gboolean edit_group_list_avail_button( GtkCList *clist, GdkEventButton *event, gpointer data ) {
if( ! event ) return FALSE;
if( event->button == 1 ) {
if( event->type == GDK_2BUTTON_PRESS ) {
edit_group_to_group( NULL, NULL );
}
}
return FALSE;
}
static gint edit_group_list_compare_func( GtkCList *clist, gconstpointer ptr1, gconstpointer ptr2 ) {
@ -258,18 +261,18 @@ static void addressbook_edit_group_create( gboolean *cancelled ) {
titles[ GROUP_COL_EMAIL ] = _("E-Mail Address");
titles[ GROUP_COL_REMARKS ] = _("Remarks");
window = gtk_window_new(GTK_WINDOW_DIALOG);
gtk_widget_set_usize(window, EDITGROUP_WIDTH, EDITGROUP_HEIGHT );
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window, EDITGROUP_WIDTH, EDITGROUP_HEIGHT );
gtk_container_set_border_width(GTK_CONTAINER(window), 0);
gtk_window_set_title(GTK_WINDOW(window), _("Edit Group Data"));
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(edit_group_delete_event),
cancelled);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(edit_group_key_pressed),
cancelled);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(edit_group_delete_event),
cancelled);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(edit_group_key_pressed),
cancelled);
vbox = gtk_vbox_new( FALSE, 6 );
gtk_container_set_border_width(GTK_CONTAINER(vbox), BORDER_WIDTH);
@ -371,22 +374,22 @@ static void addressbook_edit_group_create( gboolean *cancelled ) {
gtk_box_pack_end(GTK_BOX(vbox), hbbox, FALSE, FALSE, 0);
gtk_widget_grab_default(ok_btn);
gtk_signal_connect(GTK_OBJECT(ok_btn), "clicked",
GTK_SIGNAL_FUNC(edit_group_ok), cancelled);
gtk_signal_connect(GTK_OBJECT(cancel_btn), "clicked",
GTK_SIGNAL_FUNC(edit_group_cancel), cancelled);
g_signal_connect(G_OBJECT(ok_btn), "clicked",
G_CALLBACK(edit_group_ok), cancelled);
g_signal_connect(G_OBJECT(cancel_btn), "clicked",
G_CALLBACK(edit_group_cancel), cancelled);
gtk_widget_show_all(vbox);
/* Event handlers */
gtk_signal_connect( GTK_OBJECT(buttonGroup), "clicked",
GTK_SIGNAL_FUNC( edit_group_to_group ), NULL );
gtk_signal_connect( GTK_OBJECT(buttonAvail), "clicked",
GTK_SIGNAL_FUNC( edit_group_to_avail ), NULL );
gtk_signal_connect(GTK_OBJECT(clist_avail), "button_press_event",
GTK_SIGNAL_FUNC(edit_group_list_avail_button), NULL);
gtk_signal_connect(GTK_OBJECT(clist_group), "button_press_event",
GTK_SIGNAL_FUNC(edit_group_list_group_button), NULL);
g_signal_connect( G_OBJECT(buttonGroup), "clicked",
G_CALLBACK( edit_group_to_group ), NULL );
g_signal_connect( G_OBJECT(buttonAvail), "clicked",
G_CALLBACK( edit_group_to_avail ), NULL );
g_signal_connect(G_OBJECT(clist_avail), "button_press_event",
G_CALLBACK(edit_group_list_avail_button), NULL);
g_signal_connect(G_OBJECT(clist_group), "button_press_event",
G_CALLBACK(edit_group_list_group_button), NULL);
groupeditdlg.window = window;
groupeditdlg.ok_btn = ok_btn;

View file

@ -83,11 +83,12 @@ static gint edit_jpilot_delete_event( GtkWidget *widget, GdkEventAny *event, gbo
return TRUE;
}
static void edit_jpilot_key_pressed( GtkWidget *widget, GdkEventKey *event, gboolean *cancelled ) {
static gboolean edit_jpilot_key_pressed( GtkWidget *widget, GdkEventKey *event, gboolean *cancelled ) {
if (event && event->keyval == GDK_Escape) {
*cancelled = TRUE;
gtk_main_quit();
}
return FALSE;
}
static void edit_jpilot_ok( GtkWidget *widget, gboolean *cancelled ) {
@ -195,7 +196,7 @@ static void edit_jpilot_file_check( void ) {
}
static void edit_jpilot_file_ok( GtkWidget *widget, gpointer data ) {
gchar *sFile;
const gchar *sFile;
AddressFileSelection *afs;
GtkWidget *fileSel;
@ -224,10 +225,10 @@ static void edit_jpilot_file_select_create( AddressFileSelection *afs ) {
fileSelector = gtk_file_selection_new( _("Select JPilot File") );
gtk_file_selection_hide_fileop_buttons( GTK_FILE_SELECTION(fileSelector) );
gtk_signal_connect( GTK_OBJECT (GTK_FILE_SELECTION(fileSelector)->ok_button),
"clicked", GTK_SIGNAL_FUNC (edit_jpilot_file_ok), ( gpointer ) afs );
gtk_signal_connect( GTK_OBJECT (GTK_FILE_SELECTION(fileSelector)->cancel_button),
"clicked", GTK_SIGNAL_FUNC (edit_jpilot_file_cancel), ( gpointer ) afs );
g_signal_connect( G_OBJECT (GTK_FILE_SELECTION(fileSelector)->ok_button),
"clicked", G_CALLBACK (edit_jpilot_file_ok), ( gpointer ) afs );
g_signal_connect( G_OBJECT (GTK_FILE_SELECTION(fileSelector)->cancel_button),
"clicked", G_CALLBACK (edit_jpilot_file_cancel), ( gpointer ) afs );
afs->fileSelector = fileSelector;
afs->cancelled = TRUE;
}
@ -267,18 +268,18 @@ static void addressbook_edit_jpilot_create( gboolean *cancelled ) {
GtkWidget *statusbar;
gint top, i;
window = gtk_window_new(GTK_WINDOW_DIALOG);
gtk_widget_set_usize(window, 450, -1);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window, 450, -1);
gtk_container_set_border_width(GTK_CONTAINER(window), 0);
gtk_window_set_title(GTK_WINDOW(window), _("Edit JPilot Entry"));
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(edit_jpilot_delete_event),
cancelled);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(edit_jpilot_key_pressed),
cancelled);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(edit_jpilot_delete_event),
cancelled);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(edit_jpilot_key_pressed),
cancelled);
vbox = gtk_vbox_new(FALSE, 8);
gtk_container_add(GTK_CONTAINER(window), vbox);
@ -350,14 +351,14 @@ static void addressbook_edit_jpilot_create( gboolean *cancelled ) {
hsep = gtk_hseparator_new();
gtk_box_pack_end(GTK_BOX(vbox), hsep, FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(ok_btn), "clicked",
GTK_SIGNAL_FUNC(edit_jpilot_ok), cancelled);
gtk_signal_connect(GTK_OBJECT(cancel_btn), "clicked",
GTK_SIGNAL_FUNC(edit_jpilot_cancel), cancelled);
gtk_signal_connect(GTK_OBJECT(file_btn), "clicked",
GTK_SIGNAL_FUNC(edit_jpilot_file_select), NULL);
gtk_signal_connect(GTK_OBJECT(check_btn), "clicked",
GTK_SIGNAL_FUNC(edit_jpilot_file_check), NULL);
g_signal_connect(G_OBJECT(ok_btn), "clicked",
G_CALLBACK(edit_jpilot_ok), cancelled);
g_signal_connect(G_OBJECT(cancel_btn), "clicked",
G_CALLBACK(edit_jpilot_cancel), cancelled);
g_signal_connect(G_OBJECT(file_btn), "clicked",
G_CALLBACK(edit_jpilot_file_select), NULL);
g_signal_connect(G_OBJECT(check_btn), "clicked",
G_CALLBACK(edit_jpilot_file_check), NULL);
gtk_widget_show_all(vbox);

View file

@ -177,7 +177,7 @@ static gboolean edit_ldap_validate( void ) {
/* Switch to page with error */
if( errorFlag ) {
gtk_notebook_set_page( GTK_NOTEBOOK(ldapedit.notebook), page );
gtk_notebook_set_current_page( GTK_NOTEBOOK(ldapedit.notebook), page );
}
return errorFlag;
@ -201,11 +201,12 @@ static gint edit_ldap_delete_event( GtkWidget *widget, GdkEventAny *event, gbool
return TRUE;
}
static void edit_ldap_key_pressed( GtkWidget *widget, GdkEventKey *event, gboolean *cancelled ) {
static gboolean edit_ldap_key_pressed( GtkWidget *widget, GdkEventKey *event, gboolean *cancelled ) {
if (event && event->keyval == GDK_Escape) {
*cancelled = TRUE;
gtk_main_quit();
}
return FALSE;
}
static void edit_ldap_server_check( void ) {
@ -307,18 +308,18 @@ static void addressbook_edit_ldap_dialog_create( gboolean *cancelled ) {
GtkWidget *hsbox;
GtkWidget *statusbar;
window = gtk_window_new(GTK_WINDOW_DIALOG);
gtk_widget_set_usize(window, 450, -1);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window, 450, -1);
gtk_container_set_border_width(GTK_CONTAINER(window), 0);
gtk_window_set_title(GTK_WINDOW(window), _("Edit LDAP Server"));
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(edit_ldap_delete_event),
cancelled);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(edit_ldap_key_pressed),
cancelled);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(edit_ldap_delete_event),
cancelled);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(edit_ldap_key_pressed),
cancelled);
vbox = gtk_vbox_new( FALSE, 6 );
gtk_widget_show( vbox );
@ -342,10 +343,10 @@ static void addressbook_edit_ldap_dialog_create( gboolean *cancelled ) {
gtk_box_pack_end(GTK_BOX(vbox), hbbox, FALSE, FALSE, 0);
gtk_widget_grab_default(ok_btn);
gtk_signal_connect(GTK_OBJECT(ok_btn), "clicked",
GTK_SIGNAL_FUNC(edit_ldap_ok), cancelled);
gtk_signal_connect(GTK_OBJECT(cancel_btn), "clicked",
GTK_SIGNAL_FUNC(edit_ldap_cancel), cancelled);
g_signal_connect(G_OBJECT(ok_btn), "clicked",
G_CALLBACK(edit_ldap_ok), cancelled);
g_signal_connect(G_OBJECT(cancel_btn), "clicked",
G_CALLBACK(edit_ldap_cancel), cancelled);
gtk_widget_show_all(vbox);
@ -419,7 +420,7 @@ static void addressbook_edit_ldap_page_basic( gint pageNum, gchar *pageLbl ) {
spinbtn_port_adj = gtk_adjustment_new (389, 1, 65535, 100, 1000, 1000);
spinbtn_port = gtk_spin_button_new(GTK_ADJUSTMENT (spinbtn_port_adj), 1, 0);
gtk_box_pack_start (GTK_BOX (hbox_spin), spinbtn_port, FALSE, FALSE, 0);
gtk_widget_set_usize (spinbtn_port, 64, -1);
gtk_widget_set_size_request (spinbtn_port, 64, -1);
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_port), TRUE);
gtk_table_attach(GTK_TABLE(table), hbox_spin, 1, 2, top, (top + 1),
GTK_EXPAND|GTK_SHRINK|GTK_FILL, 0, 0, 0);
@ -441,10 +442,10 @@ static void addressbook_edit_ldap_page_basic( gint pageNum, gchar *pageLbl ) {
gtk_table_attach(GTK_TABLE(table), lookdn_btn, 2, 3, top, (top + 1), GTK_FILL, 0, 3, 0);
/* Signal handlers */
gtk_signal_connect(GTK_OBJECT(check_btn), "clicked",
GTK_SIGNAL_FUNC(edit_ldap_server_check), NULL);
gtk_signal_connect(GTK_OBJECT(lookdn_btn), "clicked",
GTK_SIGNAL_FUNC(edit_ldap_basedn_select), NULL);
g_signal_connect(G_OBJECT(check_btn), "clicked",
G_CALLBACK(edit_ldap_server_check), NULL);
g_signal_connect(G_OBJECT(lookdn_btn), "clicked",
G_CALLBACK(edit_ldap_basedn_select), NULL);
/* Done */
gtk_widget_show_all(vbox);
@ -507,7 +508,7 @@ static void addressbook_edit_ldap_page_search( gint pageNum, gchar *pageLbl ) {
LDAPCTL_DFL_QUERY_AGE, 1, LDAPCTL_MAX_QUERY_AGE, 10, 1000, 1000 );
spinbtn_queryage = gtk_spin_button_new(GTK_ADJUSTMENT (spinbtn_queryage_adj), 1, 0);
gtk_box_pack_start (GTK_BOX (hbox_spin), spinbtn_queryage, FALSE, FALSE, 0);
gtk_widget_set_usize (spinbtn_queryage, 64, -1);
gtk_widget_set_size_request (spinbtn_queryage, 64, -1);
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_queryage), TRUE);
gtk_table_attach(GTK_TABLE(table), hbox_spin, 1, 2, top, (top + 1),
GTK_EXPAND|GTK_SHRINK|GTK_FILL, 0, 0, 0);
@ -520,8 +521,8 @@ static void addressbook_edit_ldap_page_search( gint pageNum, gchar *pageLbl ) {
GTK_EXPAND|GTK_SHRINK|GTK_FILL, 0, 0, 0);
/* Signal handlers */
gtk_signal_connect(GTK_OBJECT(reset_btn), "clicked",
GTK_SIGNAL_FUNC(edit_ldap_search_reset), NULL);
g_signal_connect(G_OBJECT(reset_btn), "clicked",
G_CALLBACK(edit_ldap_search_reset), NULL);
/* Done */
gtk_widget_show_all(vbox);
@ -590,7 +591,7 @@ static void addressbook_edit_ldap_page_extended( gint pageNum, gchar *pageLbl )
spinbtn_timeout_adj = gtk_adjustment_new (0, 0, 300, 1, 10, 10);
spinbtn_timeout = gtk_spin_button_new(GTK_ADJUSTMENT (spinbtn_timeout_adj), 1, 0);
gtk_box_pack_start (GTK_BOX (hbox_spin), spinbtn_timeout, FALSE, FALSE, 0);
gtk_widget_set_usize (spinbtn_timeout, 64, -1);
gtk_widget_set_size_request (spinbtn_timeout, 64, -1);
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_timeout), TRUE);
gtk_table_attach(GTK_TABLE(table), hbox_spin, 1, 2, top, (top + 1),
GTK_EXPAND|GTK_SHRINK|GTK_FILL, 0, 0, 0);
@ -605,7 +606,7 @@ static void addressbook_edit_ldap_page_extended( gint pageNum, gchar *pageLbl )
spinbtn_maxentry_adj = gtk_adjustment_new (0, 0, 500, 1, 10, 10);
spinbtn_maxentry = gtk_spin_button_new(GTK_ADJUSTMENT (spinbtn_maxentry_adj), 1, 0);
gtk_box_pack_start (GTK_BOX (hbox_spin), spinbtn_maxentry, FALSE, FALSE, 0);
gtk_widget_set_usize (spinbtn_maxentry, 64, -1);
gtk_widget_set_size_request (spinbtn_maxentry, 64, -1);
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_maxentry), TRUE);
gtk_table_attach(GTK_TABLE(table), hbox_spin, 1, 2, top, (top + 1),
GTK_EXPAND|GTK_SHRINK|GTK_FILL, 0, 0, 0);
@ -640,7 +641,7 @@ void edit_ldap_set_optmenu( GtkOptionMenu *optmenu, const gint value ) {
menu = gtk_option_menu_get_menu(optmenu);
for( cur = GTK_MENU_SHELL(menu)->children; cur != NULL; cur = cur->next ) {
menuitem = GTK_WIDGET(cur->data);
menuVal = GPOINTER_TO_INT(gtk_object_get_user_data(GTK_OBJECT(menuitem)));
menuVal = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(menuitem), "user_data"));
if( menuVal == value ) {
gtk_option_menu_set_history(optmenu, n);
return;
@ -658,7 +659,7 @@ gint edit_ldap_get_optmenu( GtkOptionMenu *optmenu ) {
menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu));
menuitem = gtk_menu_get_active(GTK_MENU(menu));
return GPOINTER_TO_INT(gtk_object_get_user_data(GTK_OBJECT(menuitem)));
return GPOINTER_TO_INT(g_object_get_data(G_OBJECT(menuitem), "user_data"));
}
/**
@ -809,7 +810,7 @@ AdapterDSource *addressbook_edit_ldap( AddressIndex *addrIndex, AdapterDSource *
if (!ldapedit.window)
addressbook_edit_ldap_create(&cancelled);
gtk_notebook_set_page( GTK_NOTEBOOK(ldapedit.notebook), PAGE_BASIC );
gtk_notebook_set_current_page( GTK_NOTEBOOK(ldapedit.notebook), PAGE_BASIC );
gtk_widget_grab_focus(ldapedit.ok_btn);
gtk_widget_grab_focus(ldapedit.entry_name);
gtk_widget_show(ldapedit.window);

View file

@ -79,11 +79,12 @@ static gint edit_ldap_bdn_delete_event( GtkWidget *widget, GdkEventAny *event, g
return TRUE;
}
static void edit_ldap_bdn_key_pressed( GtkWidget *widget, GdkEventKey *event, gboolean *cancelled ) {
static gboolean edit_ldap_bdn_key_pressed( GtkWidget *widget, GdkEventKey *event, gboolean *cancelled ) {
if (event && event->keyval == GDK_Escape) {
ldapedit_basedn_cancelled = TRUE;
gtk_main_quit();
}
return FALSE;
}
static void edit_ldap_bdn_ok( GtkWidget *widget, gboolean *cancelled ) {
@ -106,14 +107,15 @@ static void edit_ldap_bdn_list_select( GtkCList *clist, gint row, gint column, G
}
}
static void edit_ldap_bdn_list_button( GtkCList *clist, GdkEventButton *event, gpointer data ) {
if( ! event ) return;
static gboolean edit_ldap_bdn_list_button( GtkCList *clist, GdkEventButton *event, gpointer data ) {
if( ! event ) return FALSE;
if( event->button == 1 ) {
if( event->type == GDK_2BUTTON_PRESS ) {
ldapedit_basedn_cancelled = FALSE;
gtk_main_quit();
}
}
return FALSE;
}
static void edit_ldap_bdn_create(void) {
@ -135,16 +137,16 @@ static void edit_ldap_bdn_create(void) {
GtkWidget *statusbar;
gint top;
window = gtk_window_new(GTK_WINDOW_DIALOG);
gtk_widget_set_usize(window, 300, 270);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window, 300, 270);
gtk_container_set_border_width(GTK_CONTAINER(window), 0);
gtk_window_set_title(GTK_WINDOW(window), _("Edit LDAP - Select Search Base"));
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(edit_ldap_bdn_delete_event), NULL );
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(edit_ldap_bdn_key_pressed), NULL );
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(edit_ldap_bdn_delete_event), NULL );
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(edit_ldap_bdn_key_pressed), NULL );
vbox = gtk_vbox_new(FALSE, 8);
gtk_container_add(GTK_CONTAINER(window), vbox);
@ -218,14 +220,14 @@ static void edit_ldap_bdn_create(void) {
hsep = gtk_hseparator_new();
gtk_box_pack_end(GTK_BOX(vbox), hsep, FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(ok_btn), "clicked",
GTK_SIGNAL_FUNC(edit_ldap_bdn_ok), NULL);
gtk_signal_connect(GTK_OBJECT(cancel_btn), "clicked",
GTK_SIGNAL_FUNC(edit_ldap_bdn_cancel), NULL);
gtk_signal_connect(GTK_OBJECT(basedn_list), "select_row",
GTK_SIGNAL_FUNC(edit_ldap_bdn_list_select), NULL);
gtk_signal_connect(GTK_OBJECT(basedn_list), "button_press_event",
GTK_SIGNAL_FUNC(edit_ldap_bdn_list_button), NULL);
g_signal_connect(G_OBJECT(ok_btn), "clicked",
G_CALLBACK(edit_ldap_bdn_ok), NULL);
g_signal_connect(G_OBJECT(cancel_btn), "clicked",
G_CALLBACK(edit_ldap_bdn_cancel), NULL);
g_signal_connect(G_OBJECT(basedn_list), "select_row",
G_CALLBACK(edit_ldap_bdn_list_select), NULL);
g_signal_connect(G_OBJECT(basedn_list), "button_press_event",
G_CALLBACK(edit_ldap_bdn_list_button), NULL);
gtk_widget_show_all(vbox);

View file

@ -102,7 +102,7 @@ static void edit_vcard_file_check( void ) {
}
static void edit_vcard_file_ok( GtkWidget *widget, gpointer data ) {
gchar *sFile;
const gchar *sFile;
AddressFileSelection *afs;
GtkWidget *fileSel;
@ -131,10 +131,10 @@ static void edit_vcard_file_select_create( AddressFileSelection *afs ) {
fileSelector = gtk_file_selection_new( _("Select vCard File") );
gtk_file_selection_hide_fileop_buttons( GTK_FILE_SELECTION(fileSelector) );
gtk_signal_connect( GTK_OBJECT (GTK_FILE_SELECTION(fileSelector)->ok_button),
"clicked", GTK_SIGNAL_FUNC (edit_vcard_file_ok), ( gpointer ) afs );
gtk_signal_connect( GTK_OBJECT (GTK_FILE_SELECTION(fileSelector)->cancel_button),
"clicked", GTK_SIGNAL_FUNC (edit_vcard_file_cancel), ( gpointer ) afs );
g_signal_connect( G_OBJECT (GTK_FILE_SELECTION(fileSelector)->ok_button),
"clicked", G_CALLBACK (edit_vcard_file_ok), ( gpointer ) afs );
g_signal_connect( G_OBJECT (GTK_FILE_SELECTION(fileSelector)->cancel_button),
"clicked", G_CALLBACK (edit_vcard_file_cancel), ( gpointer ) afs );
afs->fileSelector = fileSelector;
afs->cancelled = TRUE;
}
@ -158,11 +158,12 @@ static gint edit_vcard_delete_event( GtkWidget *widget, GdkEventAny *event, gboo
return TRUE;
}
static void edit_vcard_key_pressed( GtkWidget *widget, GdkEventKey *event, gboolean *cancelled ) {
static gboolean edit_vcard_key_pressed( GtkWidget *widget, GdkEventKey *event, gboolean *cancelled ) {
if (event && event->keyval == GDK_Escape) {
*cancelled = TRUE;
gtk_main_quit();
}
return FALSE;
}
static void addressbook_edit_vcard_create( gboolean *cancelled ) {
@ -182,18 +183,18 @@ static void addressbook_edit_vcard_create( gboolean *cancelled ) {
GtkWidget *hsbox;
gint top;
window = gtk_window_new(GTK_WINDOW_DIALOG);
gtk_widget_set_usize(window, 450, -1);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window, 450, -1);
gtk_container_set_border_width( GTK_CONTAINER(window), 0 );
gtk_window_set_title(GTK_WINDOW(window), _("Edit vCard Entry"));
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(edit_vcard_delete_event),
cancelled);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(edit_vcard_key_pressed),
cancelled);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(edit_vcard_delete_event),
cancelled);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(edit_vcard_key_pressed),
cancelled);
vbox = gtk_vbox_new(FALSE, 8);
gtk_container_add(GTK_CONTAINER(window), vbox);
@ -245,14 +246,14 @@ static void addressbook_edit_vcard_create( gboolean *cancelled ) {
hsep = gtk_hseparator_new();
gtk_box_pack_end(GTK_BOX(vbox), hsep, FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(ok_btn), "clicked",
GTK_SIGNAL_FUNC(edit_vcard_ok), cancelled);
gtk_signal_connect(GTK_OBJECT(cancel_btn), "clicked",
GTK_SIGNAL_FUNC(edit_vcard_cancel), cancelled);
gtk_signal_connect(GTK_OBJECT(file_btn), "clicked",
GTK_SIGNAL_FUNC(edit_vcard_file_select), NULL);
gtk_signal_connect(GTK_OBJECT(check_btn), "clicked",
GTK_SIGNAL_FUNC(edit_vcard_file_check), NULL);
g_signal_connect(G_OBJECT(ok_btn), "clicked",
G_CALLBACK(edit_vcard_ok), cancelled);
g_signal_connect(G_OBJECT(cancel_btn), "clicked",
G_CALLBACK(edit_vcard_cancel), cancelled);
g_signal_connect(G_OBJECT(file_btn), "clicked",
G_CALLBACK(edit_vcard_file_select), NULL);
g_signal_connect(G_OBJECT(check_btn), "clicked",
G_CALLBACK(edit_vcard_file_check), NULL);
gtk_widget_show_all(vbox);

View file

@ -323,7 +323,7 @@ static void export_html_browse( GtkWidget *widget, gpointer data ) {
* \param data User data.
*/
static void exp_html_file_ok( GtkWidget *widget, gpointer data ) {
gchar *sFile;
const gchar *sFile;
AddressFileSelection *afs;
GtkWidget *fileSel;
@ -682,7 +682,7 @@ static void export_html_dialog_create( void ) {
GtkWidget *hsbox;
GtkWidget *statusbar;
window = gtk_window_new(GTK_WINDOW_DIALOG);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize(window, EXPORTHTML_WIDTH, EXPORTHTML_HEIGHT );
gtk_container_set_border_width( GTK_CONTAINER(window), 0 );
gtk_window_set_title( GTK_WINDOW(window),

View file

@ -335,7 +335,7 @@ static void export_ldif_next( GtkWidget *widget ) {
* \param data User data.
*/
static void exp_ldif_file_ok( GtkWidget *widget, gpointer data ) {
gchar *sFile;
const gchar *sFile;
AddressFileSelection *afs;
GtkWidget *fileSel;
@ -703,7 +703,7 @@ static void export_ldif_dialog_create( void ) {
GtkWidget *hsbox;
GtkWidget *statusbar;
window = gtk_window_new(GTK_WINDOW_DIALOG);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize(window, EXPORTLDIF_WIDTH, EXPORTLDIF_HEIGHT );
gtk_container_set_border_width( GTK_CONTAINER(window), 0 );
gtk_window_set_title( GTK_WINDOW(window),

View file

@ -48,6 +48,7 @@
#include "manage_window.h"
#include "folder.h"
#include "utils.h"
#include "codeconv.h"
static GtkWidget *window;
static GtkWidget *src_entry;
@ -64,7 +65,7 @@ static void export_cancel_cb(GtkWidget *widget, gpointer data);
static void export_srcsel_cb(GtkWidget *widget, gpointer data);
static void export_filesel_cb(GtkWidget *widget, gpointer data);
static gint delete_event(GtkWidget *widget, GdkEventAny *event, gpointer data);
static void key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data);
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data);
gint export_mbox(FolderItem *default_src)
{
@ -94,18 +95,30 @@ gint export_mbox(FolderItem *default_src)
gtk_main();
if (export_ack) {
gchar *srcdir, *mbox;
const gchar *srcdir, *utf8mbox;
FolderItem *src;
srcdir = gtk_entry_get_text(GTK_ENTRY(src_entry));
mbox = gtk_entry_get_text(GTK_ENTRY(file_entry));
utf8mbox = gtk_entry_get_text(GTK_ENTRY(file_entry));
if (utf8mbox && *utf8mbox) {
const gchar *src_codeset = CS_UTF_8;
const gchar *dest_codeset = conv_get_current_charset_str();
gchar *mbox;
#warning FIXME_GTK2 /* should we use g_filename_from_utf8()? */
mbox = conv_codeset_strdup(utf8mbox, src_codeset, dest_codeset);
if (!mbox) {
g_warning("faild to convert character set\n");
mbox = g_strdup(utf8mbox);
}
if (mbox && *mbox) {
src = folder_find_item_from_identifier(srcdir);
if (!src)
g_warning("Can't find the folder.\n");
else
ok = export_to_mbox(src, mbox);
g_free(mbox);
}
}
@ -124,16 +137,16 @@ static void export_create(void)
GtkWidget *src_label;
GtkWidget *confirm_area;
window = gtk_window_new(GTK_WINDOW_DIALOG);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), _("Export"));
gtk_container_set_border_width(GTK_CONTAINER(window), 5);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_window_set_policy(GTK_WINDOW(window), FALSE, TRUE, FALSE);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(delete_event), NULL);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(key_pressed), NULL);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(delete_event), NULL);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(key_pressed), NULL);
MANAGE_WINDOW_SIGNALS_CONNECT(window);
vbox = gtk_vbox_new(FALSE, 4);
@ -152,7 +165,7 @@ static void export_create(void)
gtk_container_set_border_width(GTK_CONTAINER(table), 8);
gtk_table_set_row_spacings(GTK_TABLE(table), 8);
gtk_table_set_col_spacings(GTK_TABLE(table), 8);
gtk_widget_set_usize(table, 420, -1);
gtk_widget_set_size_request(table, 420, -1);
src_label = gtk_label_new(_("Source dir:"));
gtk_table_attach(GTK_TABLE(table), src_label, 0, 1, 0, 1,
@ -175,14 +188,14 @@ static void export_create(void)
src_button = gtk_button_new_with_label(_(" Select... "));
gtk_table_attach(GTK_TABLE(table), src_button, 2, 3, 0, 1,
0, 0, 0, 0);
gtk_signal_connect(GTK_OBJECT(src_button), "clicked",
GTK_SIGNAL_FUNC(export_srcsel_cb), NULL);
g_signal_connect(G_OBJECT(src_button), "clicked",
G_CALLBACK(export_srcsel_cb), NULL);
file_button = gtk_button_new_with_label(_(" Select... "));
gtk_table_attach(GTK_TABLE(table), file_button, 2, 3, 1, 2,
0, 0, 0, 0);
gtk_signal_connect(GTK_OBJECT(file_button), "clicked",
GTK_SIGNAL_FUNC(export_filesel_cb), NULL);
g_signal_connect(G_OBJECT(file_button), "clicked",
G_CALLBACK(export_filesel_cb), NULL);
gtkut_button_set_create(&confirm_area,
&ok_button, _("OK"),
@ -191,10 +204,10 @@ static void export_create(void)
gtk_box_pack_end(GTK_BOX(vbox), confirm_area, FALSE, FALSE, 0);
gtk_widget_grab_default(ok_button);
gtk_signal_connect(GTK_OBJECT(ok_button), "clicked",
GTK_SIGNAL_FUNC(export_ok_cb), NULL);
gtk_signal_connect(GTK_OBJECT(cancel_button), "clicked",
GTK_SIGNAL_FUNC(export_cancel_cb), NULL);
g_signal_connect(G_OBJECT(ok_button), "clicked",
G_CALLBACK(export_ok_cb), NULL);
g_signal_connect(G_OBJECT(cancel_button), "clicked",
G_CALLBACK(export_cancel_cb), NULL);
gtk_widget_show_all(window);
}
@ -218,7 +231,20 @@ static void export_filesel_cb(GtkWidget *widget, gpointer data)
gchar *filename;
filename = filesel_select_file(_("Select exporting file"), NULL);
if (filename)
if (!filename) return;
if (g_getenv ("G_BROKEN_FILENAMES")) {
const gchar *oldstr = filename;
filename = conv_codeset_strdup (filename,
conv_get_current_charset_str(),
CS_UTF_8);
if (!filename) {
g_warning("export_filesel_cb(): faild to convert character set.");
filename = g_strdup(oldstr);
}
gtk_entry_set_text(GTK_ENTRY(file_entry), filename);
g_free(filename);
} else
gtk_entry_set_text(GTK_ENTRY(file_entry), filename);
}
@ -237,8 +263,9 @@ static gint delete_event(GtkWidget *widget, GdkEventAny *event, gpointer data)
return TRUE;
}
static void key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
if (event && event->keyval == GDK_Escape)
export_cancel_cb(NULL, NULL);
return FALSE;
}

View file

@ -211,7 +211,8 @@ struct _FolderClass
GSList *(*get_msginfos) (Folder *folder,
FolderItem *item,
MsgNumberList *msgnum_list);
gchar *(*fetch_msg) (Folder *folder,
/* return value is locale charset */
gchar *(*fetch_msg) (Folder *folder,
FolderItem *item,
gint num);
gint (*add_msg) (Folder *folder,
@ -268,8 +269,8 @@ struct _FolderItem
{
SpecialFolderItemType stype;
gchar *name;
gchar *path;
gchar *name; /* UTF-8 */
gchar *path; /* UTF-8 */
time_t mtime;
@ -407,6 +408,7 @@ FolderItem *folder_get_default_processing (void);
void folder_set_missing_folders (void);
void folder_unref_account_all (PrefsAccount *account);
/* return value is locale encoded file name */
gchar *folder_item_get_path (FolderItem *item);
gint folder_item_open (FolderItem *item);
@ -418,6 +420,7 @@ MsgInfo *folder_item_get_msginfo (FolderItem *item,
MsgInfo *folder_item_get_msginfo_by_msgid(FolderItem *item,
const gchar *msgid);
GSList *folder_item_get_msg_list (FolderItem *item);
/* return value is locale charset */
gchar *folder_item_fetch_msg (FolderItem *item,
gint num);
gint folder_item_add_msg (FolderItem *dest,
@ -448,6 +451,7 @@ void folder_item_change_msg_flags (FolderItem *item,
MsgPermFlags newflags);
gboolean folder_item_is_msg_changed (FolderItem *item,
MsgInfo *msginfo);
/* return value is locale chaset */
gchar *folder_item_get_cache_file (FolderItem *item);
gchar *folder_item_get_mark_file (FolderItem *item);
gchar * folder_item_get_identifier (FolderItem * item);

View file

@ -83,7 +83,7 @@ static void foldersel_activated (void);
static gint delete_event (GtkWidget *widget,
GdkEventAny *event,
gpointer data);
static void key_pressed (GtkWidget *widget,
static gboolean key_pressed (GtkWidget *widget,
GdkEventKey *event,
gpointer data);
@ -144,19 +144,19 @@ static void foldersel_create(void)
GtkWidget *scrolledwin;
GtkWidget *confirm_area;
window = gtk_window_new(GTK_WINDOW_DIALOG);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), _("Select folder"));
gtk_widget_set_usize(window, 300, 400);
gtk_widget_set_size_request(window, 300, 400);
gtk_container_set_border_width(GTK_CONTAINER(window), BORDER_WIDTH);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, TRUE);
gtk_window_set_wmclass
(GTK_WINDOW(window), "folder_selection", "Sylpheed");
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(delete_event), NULL);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(key_pressed), NULL);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(delete_event), NULL);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(key_pressed), NULL);
MANAGE_WINDOW_SIGNALS_CONNECT(window);
vbox = gtk_vbox_new(FALSE, 4);
@ -179,15 +179,15 @@ static void foldersel_create(void)
gtk_clist_set_compare_func(GTK_CLIST(ctree), foldersel_clist_compare);
GTK_WIDGET_UNSET_FLAGS(GTK_CLIST(ctree)->column[0].button,
GTK_CAN_FOCUS);
/* gtk_signal_connect(GTK_OBJECT(ctree), "tree_select_row",
GTK_SIGNAL_FUNC(foldersel_selected), NULL); */
gtk_signal_connect(GTK_OBJECT(ctree), "select_row",
GTK_SIGNAL_FUNC(foldersel_selected), NULL);
/* g_signal_connect(G_OBJECT(ctree), "tree_select_row",
G_CALLBACK(foldersel_selected), NULL); */
g_signal_connect(G_OBJECT(ctree), "select_row",
G_CALLBACK(foldersel_selected), NULL);
entry = gtk_entry_new();
gtk_box_pack_start(GTK_BOX(vbox), entry, FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(entry), "activate",
GTK_SIGNAL_FUNC(foldersel_activated), NULL);
g_signal_connect(G_OBJECT(entry), "activate",
G_CALLBACK(foldersel_activated), NULL);
gtkut_button_set_create(&confirm_area,
&ok_button, _("OK"),
@ -197,10 +197,10 @@ static void foldersel_create(void)
gtk_box_pack_end(GTK_BOX(vbox), confirm_area, FALSE, FALSE, 0);
gtk_widget_grab_default(ok_button);
gtk_signal_connect(GTK_OBJECT(ok_button), "clicked",
GTK_SIGNAL_FUNC(foldersel_ok), NULL);
gtk_signal_connect(GTK_OBJECT(cancel_button), "clicked",
GTK_SIGNAL_FUNC(foldersel_cancel), NULL);
g_signal_connect(G_OBJECT(ok_button), "clicked",
G_CALLBACK(foldersel_ok), NULL);
g_signal_connect(G_OBJECT(cancel_button), "clicked",
G_CALLBACK(foldersel_cancel), NULL);
gtk_widget_show_all(window);
}
@ -347,10 +347,11 @@ static gint delete_event(GtkWidget *widget, GdkEventAny *event, gpointer data)
return TRUE;
}
static void key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
if (event && event->keyval == GDK_Escape)
foldersel_cancel(NULL, NULL);
return FALSE;
}
static gint foldersel_clist_compare(GtkCList *clist,

View file

@ -78,9 +78,6 @@ typedef enum
static GList *folderview_list = NULL;
static GdkFont *normalfont;
static GdkFont *boldfont;
static GtkStyle *normal_style;
static GtkStyle *normal_color_style;
static GtkStyle *bold_style;
@ -158,13 +155,13 @@ static gint folderview_compare_name (gconstpointer a,
gconstpointer b);
/* callback functions */
static void folderview_button_pressed (GtkWidget *ctree,
GdkEventButton *event,
FolderView *folderview);
static void folderview_button_released (GtkWidget *ctree,
GdkEventButton *event,
FolderView *folderview);
static void folderview_key_pressed (GtkWidget *widget,
static gboolean folderview_button_pressed (GtkWidget *ctree,
GdkEventButton *event,
FolderView *folderview);
static gboolean folderview_button_released (GtkWidget *ctree,
GdkEventButton *event,
FolderView *folderview);
static gboolean folderview_key_pressed (GtkWidget *widget,
GdkEventKey *event,
FolderView *folderview);
static void folderview_selected (GtkCTree *ctree,
@ -390,7 +387,7 @@ FolderView *folderview_create(void)
(GTK_SCROLLED_WINDOW(scrolledwin),
GTK_POLICY_AUTOMATIC,
prefs_common.folderview_vscrollbar_policy);
gtk_widget_set_usize(scrolledwin,
gtk_widget_set_size_request(scrolledwin,
prefs_common.folderview_width,
prefs_common.folderview_height);
@ -451,63 +448,63 @@ FolderView *folderview_create(void)
"<MboxFolder>", &mbox_factory,
folderview);
gtk_signal_connect(GTK_OBJECT(ctree), "key_press_event",
GTK_SIGNAL_FUNC(folderview_key_pressed),
folderview);
gtk_signal_connect(GTK_OBJECT(ctree), "button_press_event",
GTK_SIGNAL_FUNC(folderview_button_pressed),
folderview);
gtk_signal_connect(GTK_OBJECT(ctree), "button_release_event",
GTK_SIGNAL_FUNC(folderview_button_released),
folderview);
gtk_signal_connect(GTK_OBJECT(ctree), "tree_select_row",
GTK_SIGNAL_FUNC(folderview_selected), folderview);
gtk_signal_connect(GTK_OBJECT(ctree), "start_drag",
GTK_SIGNAL_FUNC(folderview_start_drag), folderview);
gtk_signal_connect(GTK_OBJECT(ctree), "drag_data_get",
GTK_SIGNAL_FUNC(folderview_drag_data_get),
folderview);
g_signal_connect(G_OBJECT(ctree), "key_press_event",
G_CALLBACK(folderview_key_pressed),
folderview);
g_signal_connect(G_OBJECT(ctree), "button_press_event",
G_CALLBACK(folderview_button_pressed),
folderview);
g_signal_connect(G_OBJECT(ctree), "button_release_event",
G_CALLBACK(folderview_button_released),
folderview);
g_signal_connect(G_OBJECT(ctree), "tree_select_row",
G_CALLBACK(folderview_selected), folderview);
g_signal_connect(G_OBJECT(ctree), "start_drag",
G_CALLBACK(folderview_start_drag), folderview);
g_signal_connect(G_OBJECT(ctree), "drag_data_get",
G_CALLBACK(folderview_drag_data_get),
folderview);
gtk_signal_connect_after(GTK_OBJECT(ctree), "tree_expand",
GTK_SIGNAL_FUNC(folderview_tree_expanded),
folderview);
gtk_signal_connect_after(GTK_OBJECT(ctree), "tree_collapse",
GTK_SIGNAL_FUNC(folderview_tree_collapsed),
folderview);
g_signal_connect_after(G_OBJECT(ctree), "tree_expand",
G_CALLBACK(folderview_tree_expanded),
folderview);
g_signal_connect_after(G_OBJECT(ctree), "tree_collapse",
G_CALLBACK(folderview_tree_collapsed),
folderview);
gtk_signal_connect(GTK_OBJECT(ctree), "resize_column",
GTK_SIGNAL_FUNC(folderview_col_resized),
folderview);
g_signal_connect(G_OBJECT(ctree), "resize_column",
G_CALLBACK(folderview_col_resized),
folderview);
gtk_signal_connect(GTK_OBJECT(mail_popup), "selection_done",
GTK_SIGNAL_FUNC(folderview_popup_close),
folderview);
gtk_signal_connect(GTK_OBJECT(imap_popup), "selection_done",
GTK_SIGNAL_FUNC(folderview_popup_close),
folderview);
gtk_signal_connect(GTK_OBJECT(news_popup), "selection_done",
GTK_SIGNAL_FUNC(folderview_popup_close),
folderview);
gtk_signal_connect(GTK_OBJECT(mbox_popup), "selection_done",
GTK_SIGNAL_FUNC(folderview_popup_close),
folderview);
g_signal_connect(G_OBJECT(mail_popup), "selection_done",
G_CALLBACK(folderview_popup_close),
folderview);
g_signal_connect(G_OBJECT(imap_popup), "selection_done",
G_CALLBACK(folderview_popup_close),
folderview);
g_signal_connect(G_OBJECT(news_popup), "selection_done",
G_CALLBACK(folderview_popup_close),
folderview);
g_signal_connect(G_OBJECT(mbox_popup), "selection_done",
G_CALLBACK(folderview_popup_close),
folderview);
/* drop callback */
gtk_drag_dest_set(ctree, GTK_DEST_DEFAULT_ALL & ~GTK_DEST_DEFAULT_HIGHLIGHT,
summary_drag_types, 1,
GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_DEFAULT);
gtk_signal_connect(GTK_OBJECT(ctree), "drag_motion",
GTK_SIGNAL_FUNC(folderview_drag_motion_cb),
folderview);
gtk_signal_connect(GTK_OBJECT(ctree), "drag_leave",
GTK_SIGNAL_FUNC(folderview_drag_leave_cb),
folderview);
gtk_signal_connect(GTK_OBJECT(ctree), "drag_data_received",
GTK_SIGNAL_FUNC(folderview_drag_received_cb),
folderview);
gtk_signal_connect(GTK_OBJECT(ctree), "drag_end",
GTK_SIGNAL_FUNC(folderview_drag_end_cb),
folderview);
g_signal_connect(G_OBJECT(ctree), "drag_motion",
G_CALLBACK(folderview_drag_motion_cb),
folderview);
g_signal_connect(G_OBJECT(ctree), "drag_leave",
G_CALLBACK(folderview_drag_leave_cb),
folderview);
g_signal_connect(G_OBJECT(ctree), "drag_data_received",
G_CALLBACK(folderview_drag_received_cb),
folderview);
g_signal_connect(G_OBJECT(ctree), "drag_end",
G_CALLBACK(folderview_drag_end_cb),
folderview);
folderview->scrolledwin = scrolledwin;
folderview->ctree = ctree;
@ -588,6 +585,7 @@ void folderview_init(FolderView *folderview)
gtk_clist_set_column_widget(GTK_CLIST(ctree),COL_NEW,hbox_new);
gtk_clist_set_column_widget(GTK_CLIST(ctree),COL_UNREAD,hbox_unread);
#if 0
if (!normalfont) {
if (gtkut_font_load(NORMAL_FONT) == NULL) {
GtkStyle *style = gtk_style_new();
@ -609,10 +607,18 @@ void folderview_init(FolderView *folderview)
else
boldfont = gtkut_font_load(BOLD_FONT);
}
#endif
if (!bold_style) {
PangoFontDescription *font_desc;
bold_style = gtk_style_copy(gtk_widget_get_style(ctree));
bold_style->font = boldfont;
font_desc = pango_font_description_from_string(BOLD_FONT);
if (font_desc) {
if (bold_style->font_desc)
pango_font_description_free
(bold_style->font_desc);
bold_style->font_desc = font_desc;
}
bold_color_style = gtk_style_copy(bold_style);
bold_color_style->fg[GTK_STATE_NORMAL] = folderview->color_new;
@ -620,8 +626,15 @@ void folderview_init(FolderView *folderview)
bold_tgtfold_style->fg[GTK_STATE_NORMAL] = folderview->color_op;
}
if (!normal_style) {
PangoFontDescription *font_desc;
normal_style = gtk_style_copy(gtk_widget_get_style(ctree));
normal_style->font = normalfont;
font_desc = pango_font_description_from_string(NORMAL_FONT);
if (font_desc) {
if (normal_style->font_desc)
pango_font_description_free
(normal_style->font_desc);
normal_style->font_desc = font_desc;
}
normal_color_style = gtk_style_copy(normal_style);
normal_color_style->fg[GTK_STATE_NORMAL] = folderview->color_new;
}
@ -811,8 +824,8 @@ static GtkWidget *label_window_create(const gchar *str)
GtkWidget *window;
GtkWidget *label;
window = gtk_window_new(GTK_WINDOW_DIALOG);
gtk_widget_set_usize(window, 380, 60);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window, 380, 60);
gtk_container_set_border_width(GTK_CONTAINER(window), 8);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_title(GTK_WINDOW(window), str);
@ -1427,8 +1440,8 @@ void folderview_delete_folder(FolderView *folderview)
/* callback functions */
static void folderview_button_pressed(GtkWidget *ctree, GdkEventButton *event,
FolderView *folderview)
static gboolean folderview_button_pressed(GtkWidget *ctree, GdkEventButton *event,
FolderView *folderview)
{
GtkCList *clist = GTK_CLIST(ctree);
gint prev_row = -1, row = -1, column = -1;
@ -1448,11 +1461,11 @@ static void folderview_button_pressed(GtkWidget *ctree, GdkEventButton *event,
gboolean folder_processing = FALSE;
gboolean folder_scoring = FALSE;
if (!event) return;
if (!event) return FALSE;
if (event->button == 1) {
folderview->open_folder = TRUE;
return;
return FALSE;
}
if (event->button == 2 || event->button == 3) {
@ -1468,7 +1481,7 @@ static void folderview_button_pressed(GtkWidget *ctree, GdkEventButton *event,
if (!gtk_clist_get_selection_info(clist, event->x, event->y,
&row, &column))
return;
return FALSE;
if (prev_row != row) {
gtk_clist_unselect_all(clist);
if (event->button == 2)
@ -1481,11 +1494,11 @@ static void folderview_button_pressed(GtkWidget *ctree, GdkEventButton *event,
}
}
if (event->button != 3) return;
if (event->button != 3) return FALSE;
item = gtk_clist_get_row_data(clist, row);
g_return_if_fail(item != NULL);
g_return_if_fail(item->folder != NULL);
g_return_val_if_fail(item != NULL, FALSE);
g_return_val_if_fail(item->folder != NULL, FALSE);
folder = item->folder;
if (folderview->mainwin->lock_count == 0) {
@ -1575,18 +1588,20 @@ static void folderview_button_pressed(GtkWidget *ctree, GdkEventButton *event,
SET_SENS(mbox_factory, "/Processing...", folder_processing);
SET_SENS(mbox_factory, "/Scoring...", folder_scoring);
} else
return;
return FALSE;
#undef SET_SENS
gtk_menu_popup(GTK_MENU(popup), NULL, NULL, NULL, NULL,
event->button, event->time);
return FALSE;
}
static void folderview_button_released(GtkWidget *ctree, GdkEventButton *event,
FolderView *folderview)
static gboolean folderview_button_released(GtkWidget *ctree, GdkEventButton *event,
FolderView *folderview)
{
if (!event) return;
if (!event) return FALSE;
if (event->button == 1 && folderview->open_folder == FALSE &&
folderview->opened != NULL) {
@ -1594,12 +1609,14 @@ static void folderview_button_released(GtkWidget *ctree, GdkEventButton *event,
folderview->opened);
gtk_ctree_select(GTK_CTREE(ctree), folderview->opened);
}
return FALSE;
}
static void folderview_key_pressed(GtkWidget *widget, GdkEventKey *event,
FolderView *folderview)
static gboolean folderview_key_pressed(GtkWidget *widget, GdkEventKey *event,
FolderView *folderview)
{
if (!event) return;
if (!event) return FALSE;
switch (event->keyval) {
case GDK_Return:
@ -1622,6 +1639,8 @@ static void folderview_key_pressed(GtkWidget *widget, GdkEventKey *event,
default:
break;
}
return FALSE;
}
static void folderview_selected(GtkCTree *ctree, GtkCTreeNode *row,
@ -2830,13 +2849,13 @@ static gboolean folderview_drag_motion_cb(GtkWidget *widget,
drag_state_start(folderview, node, item);
if (acceptable) {
gtk_signal_handler_block_by_func
(GTK_OBJECT(widget),
GTK_SIGNAL_FUNC(folderview_selected), folderview);
g_signal_handlers_block_by_func
(G_OBJECT(widget),
G_CALLBACK(folderview_selected), folderview);
gtk_ctree_select(GTK_CTREE(widget), node);
gtk_signal_handler_unblock_by_func
(GTK_OBJECT(widget),
GTK_SIGNAL_FUNC(folderview_selected), folderview);
g_signal_handlers_unblock_by_func
(G_OBJECT(widget),
G_CALLBACK(folderview_selected), folderview);
gdk_drag_status(context,
(context->actions == GDK_ACTION_COPY ?
GDK_ACTION_COPY : GDK_ACTION_MOVE) , time);

View file

@ -85,7 +85,7 @@ static void cancel_clicked (GtkWidget *widget,
gpointer data);
static void refresh_clicked (GtkWidget *widget,
gpointer data);
static void key_pressed (GtkWidget *widget,
static gboolean key_pressed (GtkWidget *widget,
GdkEventKey *event,
gpointer data);
static void ctree_selected (GtkCTree *ctree,
@ -165,16 +165,16 @@ static void grouplist_dialog_create(void)
dialog = gtk_dialog_new();
gtk_window_set_policy(GTK_WINDOW(dialog), FALSE, TRUE, FALSE);
gtk_widget_set_usize(dialog,
GROUPLIST_DIALOG_WIDTH, GROUPLIST_DIALOG_HEIGHT);
gtk_widget_set_size_request(dialog,
GROUPLIST_DIALOG_WIDTH, GROUPLIST_DIALOG_HEIGHT);
gtk_container_set_border_width
(GTK_CONTAINER(GTK_DIALOG(dialog)->action_area), 5);
gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
gtk_window_set_title(GTK_WINDOW(dialog), _("Newsgroup subscription"));
gtk_signal_connect(GTK_OBJECT(dialog), "delete_event",
GTK_SIGNAL_FUNC(cancel_clicked), NULL);
gtk_signal_connect(GTK_OBJECT(dialog), "key_press_event",
GTK_SIGNAL_FUNC(key_pressed), NULL);
g_signal_connect(G_OBJECT(dialog), "delete_event",
G_CALLBACK(cancel_clicked), NULL);
g_signal_connect(G_OBJECT(dialog), "key_press_event",
G_CALLBACK(key_pressed), NULL);
MANAGE_WINDOW_SIGNALS_CONNECT(dialog);
gtk_widget_realize(dialog);
@ -197,14 +197,14 @@ static void grouplist_dialog_create(void)
entry = gtk_entry_new();
gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0);
gtk_signal_connect(GTK_OBJECT(entry), "activate",
GTK_SIGNAL_FUNC(entry_activated), NULL);
g_signal_connect(G_OBJECT(entry), "activate",
G_CALLBACK(entry_activated), NULL);
search_button = gtk_button_new_with_label(_(" Search "));
gtk_box_pack_start(GTK_BOX(hbox), search_button, FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(search_button), "clicked",
GTK_SIGNAL_FUNC(search_clicked), NULL);
g_signal_connect(G_OBJECT(search_button), "clicked",
G_CALLBACK(search_clicked), NULL);
scrolledwin = gtk_scrolled_window_new(NULL, NULL);
gtk_box_pack_start(GTK_BOX (vbox), scrolledwin, TRUE, TRUE, 0);
@ -226,10 +226,10 @@ static void grouplist_dialog_create(void)
for (i = 0; i < 3; i++)
GTK_WIDGET_UNSET_FLAGS(GTK_CLIST(ctree)->column[i].button,
GTK_CAN_FOCUS);
gtk_signal_connect(GTK_OBJECT(ctree), "tree_select_row",
GTK_SIGNAL_FUNC(ctree_selected), NULL);
gtk_signal_connect(GTK_OBJECT(ctree), "tree_unselect_row",
GTK_SIGNAL_FUNC(ctree_unselected), NULL);
g_signal_connect(G_OBJECT(ctree), "tree_select_row",
G_CALLBACK(ctree_selected), NULL);
g_signal_connect(G_OBJECT(ctree), "tree_unselect_row",
G_CALLBACK(ctree_unselected), NULL);
hbox = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
@ -245,12 +245,12 @@ static void grouplist_dialog_create(void)
confirm_area);
gtk_widget_grab_default(ok_button);
gtk_signal_connect(GTK_OBJECT(ok_button), "clicked",
GTK_SIGNAL_FUNC(ok_clicked), NULL);
gtk_signal_connect(GTK_OBJECT(cancel_button), "clicked",
GTK_SIGNAL_FUNC(cancel_clicked), NULL);
gtk_signal_connect(GTK_OBJECT(refresh_button), "clicked",
GTK_SIGNAL_FUNC(refresh_clicked), NULL);
g_signal_connect(G_OBJECT(ok_button), "clicked",
G_CALLBACK(ok_clicked), NULL);
g_signal_connect(G_OBJECT(cancel_button), "clicked",
G_CALLBACK(cancel_clicked), NULL);
g_signal_connect(G_OBJECT(refresh_button), "clicked",
G_CALLBACK(refresh_clicked), NULL);
gtk_widget_show_all(GTK_DIALOG(dialog)->vbox);
}
@ -400,12 +400,12 @@ static void grouplist_dialog_set_list(const gchar *pattern, gboolean refresh)
return;
}
} else {
gtk_signal_handler_block_by_func
(GTK_OBJECT(ctree), GTK_SIGNAL_FUNC(ctree_unselected),
g_signal_handlers_block_by_func
(G_OBJECT(ctree), G_CALLBACK(ctree_unselected),
NULL);
gtk_clist_clear(GTK_CLIST(ctree));
gtk_signal_handler_unblock_by_func
(GTK_OBJECT(ctree), GTK_SIGNAL_FUNC(ctree_unselected),
g_signal_handlers_unblock_by_func
(G_OBJECT(ctree), G_CALLBACK(ctree_unselected),
NULL);
}
gtk_entry_set_text(GTK_ENTRY(entry), pattern);
@ -414,9 +414,9 @@ static void grouplist_dialog_set_list(const gchar *pattern, gboolean refresh)
gtk_clist_freeze(GTK_CLIST(ctree));
gtk_signal_handler_block_by_func(GTK_OBJECT(ctree),
GTK_SIGNAL_FUNC(ctree_selected),
NULL);
g_signal_handlers_block_by_func(G_OBJECT(ctree),
G_CALLBACK(ctree_selected),
NULL);
for (cur = group_list; cur != NULL ; cur = cur->next) {
NewsGroupInfo *ginfo = (NewsGroupInfo *)cur->data;
@ -430,9 +430,9 @@ static void grouplist_dialog_set_list(const gchar *pattern, gboolean refresh)
}
}
gtk_signal_handler_unblock_by_func(GTK_OBJECT(ctree),
GTK_SIGNAL_FUNC(ctree_selected),
NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(ctree),
G_CALLBACK(ctree_selected),
NULL);
gtk_clist_thaw(GTK_CLIST(ctree));
@ -456,16 +456,16 @@ static void grouplist_search(void)
static void grouplist_clear(void)
{
gtk_signal_handler_block_by_func(GTK_OBJECT(ctree),
GTK_SIGNAL_FUNC(ctree_unselected),
NULL);
g_signal_handlers_block_by_func(G_OBJECT(ctree),
G_CALLBACK(ctree_unselected),
NULL);
gtk_clist_clear(GTK_CLIST(ctree));
gtk_entry_set_text(GTK_ENTRY(entry), "");
news_group_list_free(group_list);
group_list = NULL;
gtk_signal_handler_unblock_by_func(GTK_OBJECT(ctree),
GTK_SIGNAL_FUNC(ctree_unselected),
NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(ctree),
G_CALLBACK(ctree_unselected),
NULL);
}
static gboolean grouplist_recv_func(SockInfo *sock, gint count, gint read_bytes,
@ -511,10 +511,11 @@ static void refresh_clicked(GtkWidget *widget, gpointer data)
g_free(str);
}
static void key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
if (event && event->keyval == GDK_Escape)
cancel_clicked(NULL, NULL);
return FALSE;
}
static void ctree_selected(GtkCTree *ctree, GtkCTreeNode *node, gint column,

View file

@ -1,5 +1,8 @@
noinst_LTLIBRARIES = libsylpheedgtk.la
EXTRA_DIST = \
sylpheed-marshal.list
libsylpheedgtk_la_SOURCES = \
about.c \
colorlabel.c \
@ -10,12 +13,12 @@ libsylpheedgtk_la_SOURCES = \
gtkutils.c \
gtkshruler.c \
gtksctree.c \
gtkstext.c \
manage_window.c \
menu.c \
pluginwindow.c \
prefswindow.c \
sslcertwindow.c \
sylpheed-marshal.c \
gtkvscrollbutton.c
sylpheedgtkincludedir = $(pkgincludedir)/gtk
@ -29,12 +32,12 @@ sylpheedgtkinclude_HEADERS = \
gtkutils.h \
gtkshruler.h \
gtksctree.h \
gtkstext.h \
manage_window.h \
menu.h \
pluginwindow.h \
prefswindow.h \
sslcertwindow.h \
sylpheed-marshal.h \
gtkvscrollbutton.h
AM_CPPFLAGS = \
@ -48,3 +51,11 @@ libsylpheedgtk_la_LIBADD = \
../common/libsylpheedcommon.la \
$(GTK_LIBS) \
$(ASPELL_LIBS)
BUILT_SOURCES=sylpheed-marshal.c sylpheed-marshal.h
sylpheed-marshal.h: sylpheed-marshal.list
$(GLIB_GENMARSHAL) $< --header --prefix=sylpheed_marshal > $@
sylpheed-marshal.c: sylpheed-marshal.list
$(GLIB_GENMARSHAL) $< --body --prefix=sylpheed_marshal > $@

View file

@ -50,7 +50,7 @@
static GtkWidget *window;
static void about_create(void);
static void key_pressed(GtkWidget *widget, GdkEventKey *event);
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event);
static void about_uri_clicked(GtkButton *button, gpointer data);
void about_show(void)
@ -78,6 +78,8 @@ static void about_create(void)
GdkColormap *cmap;
GdkColor uri_color[2] = {{0, 0, 0, 0xffff}, {0, 0xffff, 0, 0}};
gboolean success[2];
GtkTextBuffer *buffer;
GtkTextIter iter;
#if HAVE_SYS_UTSNAME_H
struct utsname utsbuf;
@ -85,15 +87,15 @@ static void about_create(void)
gchar buf[1024];
gint i;
window = gtk_window_new(GTK_WINDOW_DIALOG);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), _("About"));
gtk_container_set_border_width(GTK_CONTAINER(window), 8);
gtk_widget_set_usize(window, 518, 358);
gtk_widget_set_size_request(window, 518, 358);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(gtk_widget_hide_on_delete), NULL);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(key_pressed), NULL);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(gtk_widget_hide_on_delete), NULL);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(key_pressed), NULL);
gtk_widget_realize(window);
vbox = gtk_vbox_new(FALSE, 6);
@ -172,8 +174,8 @@ static void about_create(void)
button = gtk_button_new_with_label(" "HOMEPAGE_URI" ");
gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, FALSE, 0);
gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
gtk_signal_connect(GTK_OBJECT(button), "clicked",
GTK_SIGNAL_FUNC(about_uri_clicked), NULL);
g_signal_connect(G_OBJECT(button), "clicked",
G_CALLBACK(about_uri_clicked), NULL);
buf[0] = ' ';
for (i = 1; i <= strlen(HOMEPAGE_URI); i++) buf[i] = '_';
strcpy(buf + i, " ");
@ -196,55 +198,53 @@ static void about_create(void)
GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
gtk_box_pack_start(GTK_BOX(vbox), scrolledwin, TRUE, TRUE, 0);
text = gtk_text_new(gtk_scrolled_window_get_hadjustment
(GTK_SCROLLED_WINDOW(scrolledwin)),
gtk_scrolled_window_get_vadjustment
(GTK_SCROLLED_WINDOW(scrolledwin)));
gtk_text_set_word_wrap(GTK_TEXT(text), TRUE);
text = gtk_text_view_new();
gtk_text_view_set_editable(GTK_TEXT_VIEW(text), FALSE);
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text), GTK_WRAP_WORD);
gtk_container_add(GTK_CONTAINER(scrolledwin), text);
gtk_text_freeze(GTK_TEXT(text));
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0);
#if USE_GPGME
gtk_text_insert(GTK_TEXT(text), NULL, NULL, NULL,
gtk_text_buffer_insert(buffer, &iter,
_("GPGME is copyright 2001 by Werner Koch <dd9jn@gnu.org>\n\n"), -1);
#endif /* USE_GPGME */
gtk_text_insert(GTK_TEXT(text), NULL, NULL, NULL,
gtk_text_buffer_insert(buffer, &iter,
_("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, or (at your option) "
"any later version.\n\n"), -1);
gtk_text_insert(GTK_TEXT(text), NULL, NULL, NULL,
gtk_text_buffer_insert(buffer, &iter,
_("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.\n\n"), -1);
gtk_text_insert(GTK_TEXT(text), NULL, NULL, NULL,
gtk_text_buffer_insert(buffer, &iter,
_("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."), -1);
gtk_text_thaw(GTK_TEXT(text));
gtkut_button_set_create(&confirm_area, &ok_button, _("OK"),
NULL, NULL, NULL, NULL);
gtk_box_pack_end(GTK_BOX(vbox), confirm_area, FALSE, FALSE, 0);
gtk_widget_grab_default(ok_button);
gtk_signal_connect_object(GTK_OBJECT(ok_button), "clicked",
GTK_SIGNAL_FUNC(gtk_widget_hide_on_delete),
GTK_OBJECT(window));
g_signal_connect_closure
(G_OBJECT(ok_button), "clicked",
g_cclosure_new_swap(G_CALLBACK(gtk_widget_hide_on_delete),
window, NULL), FALSE);
gtk_widget_show_all(window);
}
static void key_pressed(GtkWidget *widget, GdkEventKey *event)
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event)
{
if (event && event->keyval == GDK_Escape)
gtk_widget_hide(window);
return FALSE;
}
static void about_uri_clicked(GtkButton *button, gpointer data)

View file

@ -25,10 +25,12 @@
#include "defs.h"
#include <glib.h>
#include <gdk/gdkx.h>
#ifdef GDK_WINDOWING_X11
# include <gdk/gdkx.h>
#endif /* GDK_WINDOWING_X11 */
#include <gtk/gtk.h>
#include <gtk/gtkwidget.h>
#include <gtk/gtkpixmap.h>
#include <gtk/gtkimage.h>
#include <gtk/gtkmenu.h>
#include <gtk/gtkcheckmenuitem.h>
#include <gtk/gtklabel.h>
@ -143,17 +145,17 @@ static GtkWidget *colorlabel_create_color_widget(GdkColor color)
GtkWidget *widget;
widget = gtk_drawing_area_new();
gtk_drawing_area_size(GTK_DRAWING_AREA(widget), 16, 16);
gtk_widget_set_size_request(widget, 16, 16);
#define CL(x) (((gulong) (x) >> (gulong) 8) & 0xFFUL)
#define CR(r, g, b) ((CL(r) << (gulong) 16) | \
(CL(g) << (gulong) 8) | \
(CL(b)))
gtk_signal_connect(GTK_OBJECT(widget), "expose_event",
GTK_SIGNAL_FUNC
g_signal_connect(G_OBJECT(widget), "expose_event",
G_CALLBACK
(colorlabel_drawing_area_expose_event_cb),
GINT_TO_POINTER
GINT_TO_POINTER
((gint)CR(color.red, color.green, color.blue)));
return widget;
@ -251,7 +253,7 @@ GtkWidget *colorlabel_create_check_color_menu_item(gint color_index)
gtk_container_add(GTK_CONTAINER(align), label_colors[color_index].widget);
gtk_widget_show(label_colors[color_index].widget);
gtk_widget_set_usize(align, 16, 16);
gtk_widget_set_size_request(align, 16, 16);
gtk_box_pack_start(GTK_BOX(hbox), align, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 4);
@ -274,11 +276,11 @@ GtkWidget *colorlabel_create_color_menu(void)
/* create the menu items. each item has its color code attached */
menu = gtk_menu_new();
gtk_object_set_data(GTK_OBJECT(menu), "label_color_menu", menu);
g_object_set_data(G_OBJECT(menu), "label_color_menu", menu);
item = gtk_menu_item_new_with_label(_("None"));
gtk_menu_append(GTK_MENU(menu), item);
gtk_object_set_data(GTK_OBJECT(item), "color", GUINT_TO_POINTER(0));
gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
g_object_set_data(G_OBJECT(item), "color", GUINT_TO_POINTER(0));
gtk_widget_show(item);
/* and the color items */
@ -286,7 +288,7 @@ GtkWidget *colorlabel_create_color_menu(void)
GtkWidget *widget = colorlabel_create_color_widget(label_colors[i].color);
item = gtk_menu_item_new();
gtk_object_set_data(GTK_OBJECT(item), "color", GUINT_TO_POINTER(i + 1));
g_object_set_data(G_OBJECT(item), "color", GUINT_TO_POINTER(i + 1));
label = gtk_label_new(label_colors[i].label);
@ -302,12 +304,12 @@ GtkWidget *colorlabel_create_color_menu(void)
gtk_container_add(GTK_CONTAINER(align), widget);
gtk_widget_show(widget);
gtk_widget_set_usize(align, 16, 16);
gtk_widget_set_size_request(align, 16, 16);
gtk_box_pack_start(GTK_BOX(hbox), align, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 4);
gtk_menu_append(GTK_MENU(menu), item);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
gtk_widget_show(item);
}
@ -322,10 +324,10 @@ guint colorlabel_get_color_menu_active_item(GtkWidget *menu)
guint color;
g_return_val_if_fail
(gtk_object_get_data(GTK_OBJECT(menu), "label_color_menu"), 0);
(g_object_get_data(G_OBJECT(menu), "label_color_menu"), 0);
menuitem = gtk_menu_get_active(GTK_MENU(menu));
color = GPOINTER_TO_UINT
(gtk_object_get_data(GTK_OBJECT(menuitem), "color"));
(g_object_get_data(G_OBJECT(menuitem), "color"));
return color;
}

View file

@ -21,11 +21,12 @@
#define COLORLABEL_H__
#include <glib.h>
#include <gtk/gtkimage.h>
gint colorlabel_get_color_count (void);
GdkColor colorlabel_get_color (gint color_index);
gchar *colorlabel_get_color_text (gint color_index);
GtkPixmap *colorlabel_create_color_pixmap (GdkColor color);
GtkImage *colorlabel_create_color_pixmap (GdkColor color);
gboolean colorlabel_changed (void);
GtkWidget *colorlabel_create_check_color_menu_item
(gint color_index);

View file

@ -58,7 +58,7 @@ static void description_create(DescriptionWindow * dwindow)
int line;
int j;
dwindow->window = gtk_window_new(GTK_WINDOW_DIALOG);
dwindow->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize(dwindow->window,400,450);
gtk_window_set_title(GTK_WINDOW(dwindow->window),

View file

@ -41,7 +41,7 @@ static void filesel_create(const gchar *title, gboolean multiple_files);
static void filesel_ok_cb(GtkWidget *widget, gpointer data);
static void filesel_cancel_cb(GtkWidget *widget, gpointer data);
static gint delete_event(GtkWidget *widget, GdkEventAny *event, gpointer data);
static void key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data);
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data);
static void filesel_file_list_select_row_multi(GtkCList *clist, gint row, gint col,
GdkEventButton *event, gpointer userdata);
@ -90,7 +90,7 @@ gchar *filesel_select_file(const gchar *title, const gchar *file)
gtk_main_iteration();
if (filesel_ack) {
gchar *str;
const gchar *str;
str = gtk_file_selection_get_filename
(GTK_FILE_SELECTION(filesel));
@ -148,7 +148,7 @@ GList *filesel_select_multiple_files(const gchar *title, const gchar *file)
gtk_main_iteration();
if (filesel_ack) {
gchar *fname = NULL;
const gchar *fname = NULL;
list = filesel_get_multiple_filenames();
@ -182,17 +182,17 @@ static void filesel_create(const gchar *title, gboolean multiple_files)
gtk_window_set_wmclass
(GTK_WINDOW(filesel), "file_selection", "Sylpheed");
gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->ok_button),
"clicked", GTK_SIGNAL_FUNC(filesel_ok_cb),
NULL);
gtk_signal_connect
(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->cancel_button),
"clicked", GTK_SIGNAL_FUNC(filesel_cancel_cb),
g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(filesel)->ok_button),
"clicked", G_CALLBACK(filesel_ok_cb),
NULL);
g_signal_connect
(G_OBJECT(GTK_FILE_SELECTION(filesel)->cancel_button),
"clicked", G_CALLBACK(filesel_cancel_cb),
NULL);
gtk_signal_connect(GTK_OBJECT(filesel), "delete_event",
GTK_SIGNAL_FUNC(delete_event), NULL);
gtk_signal_connect(GTK_OBJECT(filesel), "key_press_event",
GTK_SIGNAL_FUNC(key_pressed), NULL);
g_signal_connect(G_OBJECT(filesel), "delete_event",
G_CALLBACK(delete_event), NULL);
g_signal_connect(G_OBJECT(filesel), "key_press_event",
G_CALLBACK(key_pressed), NULL);
MANAGE_WINDOW_SIGNALS_CONNECT(filesel);
if (multiple_files) {
@ -245,10 +245,11 @@ static gint delete_event(GtkWidget *widget, GdkEventAny *event, gpointer data)
return TRUE;
}
static void key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
if (event && event->keyval == GDK_Escape)
filesel_cancel_cb(NULL, NULL);
return FALSE;
}
/* handle both "select_row" and "unselect_row". note that we're using the
@ -329,15 +330,12 @@ static GList *filesel_get_multiple_filenames(void)
* entry is only useful for extracting the current directory. */
GtkCList *file_list = GTK_CLIST(GTK_FILE_SELECTION(filesel)->file_list);
GList *list = NULL, *sel_list;
gchar *cwd, *tmp;
gchar *cwd;
gboolean separator;
g_return_val_if_fail(file_list->selection != NULL, NULL);
tmp = gtk_file_selection_get_filename(GTK_FILE_SELECTION(filesel));
tmp = g_strdup(tmp);
cwd = g_dirname(tmp);
g_free(tmp);
cwd = g_dirname(gtk_file_selection_get_filename(GTK_FILE_SELECTION(filesel)));
g_return_val_if_fail(cwd != NULL, NULL);
/* only quick way to check the end of a multi byte string for our

View file

@ -5,6 +5,7 @@
#include <stdlib.h>
#include "gtksctree.h"
#include "sylpheed-marshal.h"
enum {
@ -64,8 +65,6 @@ static GtkCTreeClass *parent_class;
static guint sctree_signals[LAST_SIGNAL];
#define GTK_CLIST_CLASS_FW(_widget_) GTK_CLIST_CLASS (((GtkObject*) (_widget_))->klass)
/**
* gtk_sctree_get_type:
* @void:
@ -74,24 +73,28 @@ static guint sctree_signals[LAST_SIGNAL];
*
* Return value: The type ID for GtkSCTreeClass
**/
GtkType
GType
gtk_sctree_get_type (void)
{
static GtkType sctree_type = 0;
static GType sctree_type = 0;
if (!sctree_type) {
GtkTypeInfo sctree_info = {
"GtkSCTree",
sizeof (GtkSCTree),
GTypeInfo sctree_info = {
sizeof (GtkSCTreeClass),
(GtkClassInitFunc) gtk_sctree_class_init,
(GtkObjectInitFunc) gtk_sctree_init,
NULL, /* reserved_1 */
NULL, /* reserved_2 */
(GtkClassInitFunc) NULL
(GBaseInitFunc) NULL,
(GBaseFinalizeFunc) NULL,
(GClassInitFunc) gtk_sctree_class_init,
(GClassFinalizeFunc) NULL,
NULL, /* class_data */
sizeof (GtkSCTree),
0, /* n_preallocs */
(GInstanceInitFunc) gtk_sctree_init,
};
sctree_type = gtk_type_unique (gtk_ctree_get_type (), &sctree_info);
sctree_type = g_type_register_static (GTK_TYPE_CTREE, "GtkSCTree", &sctree_info, (GTypeFlags)0);
}
return sctree_type;
@ -114,39 +117,43 @@ gtk_sctree_class_init (GtkSCTreeClass *klass)
parent_class = gtk_type_class (gtk_ctree_get_type ());
sctree_signals[ROW_POPUP_MENU] =
gtk_signal_new ("row_popup_menu",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkSCTreeClass, row_popup_menu),
gtk_marshal_NONE__POINTER,
GTK_TYPE_NONE, 1,
GTK_TYPE_GDK_EVENT);
g_signal_new ("row_popup_menu",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (GtkSCTreeClass, row_popup_menu),
NULL, NULL,
sylpheed_marshal_VOID__POINTER,
G_TYPE_NONE, 1,
GDK_TYPE_EVENT);
sctree_signals[EMPTY_POPUP_MENU] =
gtk_signal_new ("empty_popup_menu",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkSCTreeClass, empty_popup_menu),
gtk_marshal_NONE__POINTER,
GTK_TYPE_NONE, 1,
GTK_TYPE_GDK_EVENT);
g_signal_new ("empty_popup_menu",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (GtkSCTreeClass, empty_popup_menu),
NULL, NULL,
sylpheed_marshal_VOID__POINTER,
G_TYPE_NONE, 1,
GDK_TYPE_EVENT);
sctree_signals[OPEN_ROW] =
gtk_signal_new ("open_row",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkSCTreeClass, open_row),
gtk_marshal_NONE__NONE,
GTK_TYPE_NONE, 0);
g_signal_new ("open_row",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (GtkSCTreeClass, open_row),
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
sctree_signals[START_DRAG] =
gtk_signal_new ("start_drag",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkSCTreeClass, start_drag),
gtk_marshal_NONE__INT_POINTER,
GTK_TYPE_NONE, 2,
GTK_TYPE_INT,
GTK_TYPE_GDK_EVENT);
g_signal_new ("start_drag",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (GtkSCTreeClass, start_drag),
NULL, NULL,
sylpheed_marshal_VOID__INT_POINTER,
G_TYPE_NONE, 2,
G_TYPE_INT,
GDK_TYPE_EVENT);
gtk_object_class_add_signals (object_class, sctree_signals, LAST_SIGNAL);
/* gtk_object_class_add_signals (object_class, sctree_signals, LAST_SIGNAL); */
clist_class->clear = gtk_sctree_clear;
ctree_class->tree_collapse = gtk_sctree_collapse;
@ -228,7 +235,7 @@ select_row (GtkSCTree *sctree, gint row, gint col, guint state)
gtk_clist_freeze (GTK_CLIST (sctree));
GTK_CLIST(sctree)->focus_row = row;
GTK_CLIST_CLASS(GTK_OBJECT(sctree)->klass)->refresh(GTK_CLIST(sctree));
GTK_CLIST_GET_CLASS(sctree)->refresh(GTK_CLIST(sctree));
if (!additive)
gtk_clist_unselect_all (GTK_CLIST (sctree));
@ -242,12 +249,12 @@ select_row (GtkSCTree *sctree, gint row, gint col, guint state)
if (row_is_selected(sctree, row))
gtk_clist_unselect_row (GTK_CLIST (sctree), row, col);
else
gtk_signal_emit_by_name
(GTK_OBJECT (sctree),
g_signal_emit_by_name
(G_OBJECT (sctree),
"tree_select_row", node, col);
} else {
gtk_signal_emit_by_name
(GTK_OBJECT (sctree),
g_signal_emit_by_name
(G_OBJECT (sctree),
"tree_select_row", node, col);
}
sctree->anchor_row = node;
@ -322,14 +329,14 @@ gtk_sctree_button_press (GtkWidget *widget, GdkEventButton *event)
if (on_row) {
if (!row_is_selected(sctree,row))
select_row (sctree, row, col, 0);
gtk_signal_emit (GTK_OBJECT (sctree),
g_signal_emit (G_OBJECT (sctree),
sctree_signals[ROW_POPUP_MENU],
event);
0, event);
} else {
gtk_clist_unselect_all(clist);
gtk_signal_emit (GTK_OBJECT (sctree),
g_signal_emit (G_OBJECT (sctree),
sctree_signals[EMPTY_POPUP_MENU],
event);
0, event);
}
retval = TRUE;
}
@ -344,8 +351,8 @@ gtk_sctree_button_press (GtkWidget *widget, GdkEventButton *event)
sctree->dnd_select_pending_state = 0;
if (on_row)
gtk_signal_emit (GTK_OBJECT (sctree),
sctree_signals[OPEN_ROW]);
g_signal_emit (GTK_OBJECT (sctree),
sctree_signals[OPEN_ROW], 0);
retval = TRUE;
break;
@ -444,10 +451,11 @@ gtk_sctree_motion (GtkWidget *widget, GdkEventMotion *event)
sctree->dnd_select_pending_state = 0;
}
gtk_signal_emit (GTK_OBJECT (sctree),
sctree_signals[START_DRAG],
sctree->dnd_press_button,
event);
g_signal_emit (G_OBJECT (sctree),
sctree_signals[START_DRAG],
0,
sctree->dnd_press_button,
event);
return TRUE;
}
@ -540,13 +548,36 @@ gtk_sctree_collapse (GtkCTree *ctree, GtkCTreeNode *node)
GtkWidget *gtk_sctree_new_with_titles (gint columns, gint tree_column,
gchar *titles[])
{
#if 0
GtkSCTree* sctree;
sctree = gtk_type_new (gtk_sctree_get_type ());
gtk_ctree_construct (GTK_CTREE (sctree), columns, tree_column, titles);
gtk_clist_set_selection_mode(GTK_CLIST(sctree), GTK_SELECTION_EXTENDED);
return GTK_WIDGET (sctree);
#else
GtkWidget *widget;
g_return_val_if_fail (columns > 0, NULL);
g_return_val_if_fail (tree_column >= 0 && tree_column < columns, NULL);
widget = gtk_widget_new (TYPE_GTK_SCTREE,
"n_columns", columns,
"tree_column", tree_column,
NULL);
if (titles) {
GtkCList *clist = GTK_CLIST (widget);
guint i;
for (i = 0; i < columns; i++)
gtk_clist_set_column_title (clist, i, titles[i]);
gtk_clist_column_titles_show (clist);
}
return widget;
#endif
}
void gtk_sctree_select (GtkSCTree *sctree, GtkCTreeNode *node)
@ -698,7 +729,7 @@ gtk_sctree_sort_recursive (GtkCTree *ctree,
gtk_clist_freeze (clist);
if (clist->selection_mode == GTK_SELECTION_EXTENDED) {
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CLIST_GET_CLASS (clist)->resync_selection (clist, NULL);
g_list_free (clist->undo_selection);
g_list_free (clist->undo_unselection);
@ -737,7 +768,7 @@ gtk_sctree_sort_node (GtkCTree *ctree,
gtk_clist_freeze (clist);
if (clist->selection_mode == GTK_SELECTION_EXTENDED) {
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CLIST_GET_CLASS (clist)->resync_selection (clist, NULL);
g_list_free (clist->undo_selection);
g_list_free (clist->undo_unselection);
@ -780,7 +811,7 @@ gtk_ctree_unlink (GtkCTree *ctree,
clist = GTK_CLIST (ctree);
if (update_focus_row && clist->selection_mode == GTK_SELECTION_EXTENDED) {
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CLIST_GET_CLASS (clist)->resync_selection (clist, NULL);
g_list_free (clist->undo_selection);
g_list_free (clist->undo_unselection);
@ -893,7 +924,7 @@ gtk_ctree_link (GtkCTree *ctree,
clist = GTK_CLIST (ctree);
if (update_focus_row && clist->selection_mode == GTK_SELECTION_EXTENDED) {
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CLIST_GET_CLASS (clist)->resync_selection (clist, NULL);
g_list_free (clist->undo_selection);
g_list_free (clist->undo_unselection);

View file

@ -52,7 +52,7 @@ struct _GtkSCTreeClass {
};
GtkType gtk_sctree_get_type (void);
GType gtk_sctree_get_type (void);
GtkWidget *gtk_sctree_new_with_titles (gint columns,
gint tree_column,

View file

@ -48,24 +48,28 @@ static void gtk_shruler_draw_ticks (GtkRuler *ruler);
static void gtk_shruler_draw_pos (GtkRuler *ruler);
#endif
guint
GType
gtk_shruler_get_type(void)
{
static guint shruler_type = 0;
static GType shruler_type = 0;
if ( !shruler_type ) {
static const GtkTypeInfo shruler_info = {
"GtkSHRuler",
sizeof (GtkSHRuler),
static const GTypeInfo shruler_info = {
sizeof (GtkSHRulerClass),
(GtkClassInitFunc) gtk_shruler_class_init,
(GtkObjectInitFunc) gtk_shruler_init,
/* reserved_1 */ NULL,
/* reserved_2 */ NULL,
(GtkClassInitFunc) NULL,
};
(GBaseInitFunc) NULL,
(GBaseFinalizeFunc) NULL,
(GClassInitFunc) gtk_shruler_class_init,
(GClassFinalizeFunc) NULL,
NULL, /* class_data */
sizeof (GtkSHRuler),
0, /* n_preallocs */
(GInstanceInitFunc) gtk_shruler_init,
};
/* inherit from GtkHRuler */
shruler_type = gtk_type_unique( gtk_hruler_get_type (), &shruler_info );
shruler_type = g_type_register_static (GTK_TYPE_HRULER, "GtkSHRuler", &shruler_info, (GTypeFlags)0);
}
return shruler_type;
}
@ -99,15 +103,15 @@ gtk_shruler_init (GtkSHRuler * shruler)
GtkWidget * widget;
widget = GTK_WIDGET (shruler);
widget->requisition.width = widget->style->klass->xthickness * 2 + 1;
widget->requisition.height = widget->style->klass->ythickness * 2 + RULER_HEIGHT;
widget->requisition.width = widget->style->xthickness * 2 + 1;
widget->requisition.height = widget->style->ythickness * 2 + RULER_HEIGHT;
}
GtkWidget*
gtk_shruler_new(void)
{
return GTK_WIDGET( gtk_type_new( gtk_shruler_get_type() ) );
return GTK_WIDGET( g_object_new( gtk_shruler_get_type(), NULL ) );
}
static void
@ -132,10 +136,10 @@ gtk_shruler_draw_ticks(GtkRuler *ruler)
gc = widget->style->fg_gc[GTK_STATE_NORMAL];
bg_gc = widget->style->bg_gc[GTK_STATE_NORMAL];
font = widget->style->font;
font = gtk_style_get_font(widget->style);
xthickness = widget->style->klass->xthickness;
ythickness = widget->style->klass->ythickness;
xthickness = widget->style->xthickness;
ythickness = widget->style->ythickness;
width = widget->allocation.width;
height = widget->allocation.height - ythickness * 2;

View file

@ -49,7 +49,7 @@ struct _GtkSHRulerClass
};
guint gtk_shruler_get_type (void);
GType gtk_shruler_get_type (void);
GtkWidget* gtk_shruler_new (void);
void gtk_shruler_set_pos (GtkSHRuler *ruler,
gfloat pos);

View file

@ -29,7 +29,8 @@
#include <gtk/gtkbutton.h>
#include <gtk/gtkctree.h>
#include <gtk/gtkcombo.h>
#include <gtk/gtkthemes.h>
#warning FIXME_GTK2
/* #include <gtk/gtkthemes.h> */
#include <gtk/gtkbindings.h>
#include <stdlib.h>
#include <stdarg.h>
@ -49,71 +50,23 @@
#include "menu.h"
#include "prefs_account.h"
gint gtkut_get_font_width(GdkFont *font)
#warning FIXME_GTK2
gboolean gtkut_get_font_size(GtkWidget *widget,
gint *width, gint *height)
{
gchar *str;
gint width;
PangoLayout *layout;
const gchar *str = "Abcdef";
if (conv_get_current_charset() == C_UTF_8)
str = "Abcdef";
else
str = _("Abcdef");
g_return_val_if_fail(GTK_IS_WIDGET(widget), FALSE);
width = gdk_string_width(font, str);
width /= strlen(str);
layout = gtk_widget_create_pango_layout(widget, str);
g_return_val_if_fail(layout, FALSE);
pango_layout_get_pixel_size(layout, width, height);
if (width)
*width = *width / g_utf8_strlen(str, -1);
g_object_unref(layout);
return width;
}
gint gtkut_get_font_height(GdkFont *font)
{
gchar *str;
gint height;
if (conv_get_current_charset() == C_UTF_8)
str = "Abcdef";
else
str = _("Abcdef");
height = gdk_string_height(font, str);
return height;
}
GdkFont *gtkut_font_load(const gchar *fontset_name)
{
GdkFont *font;
g_return_val_if_fail(fontset_name != NULL, NULL);
if (conv_get_current_charset() == C_US_ASCII)
font = gtkut_font_load_from_fontset(fontset_name);
else
font = gdk_fontset_load(fontset_name);
return font;
}
GdkFont *gtkut_font_load_from_fontset(const gchar *fontset_name)
{
GdkFont *font = NULL;
if (strchr(fontset_name, ',') == NULL) {
font = gdk_font_load(fontset_name);
} else {
gchar **fonts;
gint i;
fonts = g_strsplit(fontset_name, ",", -1);
for (i = 0; fonts[i] != NULL && fonts[i][0] != '\0';
i++) {
font = gdk_font_load(fonts[i]);
if (font) break;
}
g_strfreev(fonts);
}
return font;
return TRUE;
}
void gtkut_convert_int_to_gdk_color(gint rgbvalue, GdkColor *color)
@ -136,7 +89,7 @@ void gtkut_button_set_create(GtkWidget **bbox,
*bbox = gtk_hbutton_box_new();
gtk_button_box_set_layout(GTK_BUTTON_BOX(*bbox), GTK_BUTTONBOX_END);
gtk_button_box_set_spacing(GTK_BUTTON_BOX(*bbox), 5);
gtk_box_set_spacing(GTK_BOX(*bbox), 5);
*button1 = gtk_button_new_with_label(label1);
GTK_WIDGET_SET_FLAGS(*button1, GTK_CAN_DEFAULT);
@ -343,23 +296,16 @@ void gtkut_combo_set_items(GtkCombo *combo, const gchar *str1, ...)
gchar *gtkut_editable_get_selection(GtkEditable *editable)
{
guint start_pos, end_pos;
gboolean found;
g_return_val_if_fail(editable != NULL, NULL);
g_return_val_if_fail(GTK_IS_EDITABLE(editable), NULL);
if (!editable->has_selection) return NULL;
if (editable->selection_start_pos == editable->selection_end_pos)
found = gtk_editable_get_selection_bounds(editable,
&start_pos, &end_pos);
if (found)
return gtk_editable_get_chars(editable, start_pos, end_pos);
else
return NULL;
if (editable->selection_start_pos < editable->selection_end_pos) {
start_pos = editable->selection_start_pos;
end_pos = editable->selection_end_pos;
} else {
start_pos = editable->selection_end_pos;
end_pos = editable->selection_start_pos;
}
return gtk_editable_get_chars(editable, start_pos, end_pos);
}
/*
@ -375,9 +321,12 @@ static void gtkut_check_before_remove(GtkWidget *widget, gpointer unused)
if (GTK_IS_CONTAINER(widget))
gtk_container_forall(GTK_CONTAINER(widget),
gtkut_check_before_remove, NULL);
#warning FIXME_GTK2
#if 0
if (GTK_IS_EDITABLE(widget))
gtk_editable_claim_selection(GTK_EDITABLE(widget),
FALSE, GDK_CURRENT_TIME);
#endif
}
/*
@ -444,6 +393,8 @@ void gtkut_widget_get_uposition(GtkWidget *widget, gint *px, gint *py)
void gtkut_widget_disable_theme_engine(GtkWidget *widget)
{
#warning FIXME_GTK2
#if 0
GtkStyle *style, *new_style;
style = gtk_widget_get_style(widget);
@ -457,24 +408,14 @@ void gtkut_widget_disable_theme_engine(GtkWidget *widget)
style->engine = engine;
gtk_widget_set_style(widget, new_style);
}
}
static void gtkut_widget_draw_cb(GtkWidget *widget, GdkRectangle *area,
gboolean *flag)
{
*flag = TRUE;
gtk_signal_disconnect_by_data(GTK_OBJECT(widget), flag);
#endif
}
void gtkut_widget_wait_for_draw(GtkWidget *widget)
{
gboolean flag = FALSE;
if (!GTK_WIDGET_DRAWABLE(widget)) return;
gtk_signal_connect(GTK_OBJECT(widget), "draw",
GTK_SIGNAL_FUNC(gtkut_widget_draw_cb), &flag);
while (!flag)
while (gtk_events_pending())
gtk_main_iteration();
}
@ -483,16 +424,16 @@ static void gtkut_clist_bindings_add(GtkWidget *clist)
GtkBindingSet *binding_set;
binding_set = gtk_binding_set_by_class
(GTK_CLIST_CLASS(GTK_OBJECT(clist)->klass));
(GTK_CLIST_GET_CLASS(clist));
gtk_binding_entry_add_signal(binding_set, GDK_n, GDK_CONTROL_MASK,
"scroll_vertical", 2,
GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD,
GTK_TYPE_FLOAT, 0.0);
G_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD,
G_TYPE_FLOAT, 0.0);
gtk_binding_entry_add_signal(binding_set, GDK_p, GDK_CONTROL_MASK,
"scroll_vertical", 2,
GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD,
GTK_TYPE_FLOAT, 0.0);
G_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD,
G_TYPE_FLOAT, 0.0);
}
void gtkut_widget_init(void)
@ -500,16 +441,22 @@ void gtkut_widget_init(void)
GtkWidget *clist;
clist = gtk_clist_new(1);
g_object_ref(G_OBJECT(clist));
gtk_object_sink(GTK_OBJECT(clist));
gtkut_clist_bindings_add(clist);
gtk_widget_unref(clist);
g_object_unref(G_OBJECT(clist));
clist = gtk_ctree_new(1, 0);
g_object_ref(G_OBJECT(clist));
gtk_object_sink(GTK_OBJECT(clist));
gtkut_clist_bindings_add(clist);
gtk_widget_unref(clist);
g_object_unref(G_OBJECT(clist));
clist = gtk_sctree_new_with_titles(1, 0, NULL);
g_object_ref(G_OBJECT(clist));
gtk_object_sink(GTK_OBJECT(clist));
gtkut_clist_bindings_add(clist);
gtk_widget_unref(clist);
g_object_unref(G_OBJECT(clist));
}
void gtkut_widget_set_app_icon(GtkWidget *widget)
@ -587,4 +534,154 @@ void gtkut_set_widget_bgcolor_rgb(GtkWidget *widget, guint rgbvalue)
newstyle->bg[GTK_STATE_ACTIVE] = gdk_color;
gtk_widget_set_style(widget, newstyle);
}
#warning FIXME_GTK2
#if 1 /* FIXME_GTK2 */
gboolean gtkut_text_buffer_match_string(GtkTextBuffer *textbuf, gint pos, gunichar *wcs,
gint len, gboolean case_sens)
{
GtkTextIter start_iter, end_iter;
gchar *utf8str;
gint match_count = 0;
gtk_text_buffer_get_iter_at_offset(textbuf, &start_iter, pos);
gtk_text_buffer_get_iter_at_offset(textbuf, &end_iter, pos + len);
utf8str = gtk_text_buffer_get_text(textbuf, &start_iter, &end_iter, FALSE);
if (!utf8str) return FALSE;
if ((gint) g_utf8_strlen(utf8str, -1) != len) {
g_free(utf8str);
return FALSE;
}
for (; match_count < len; pos++, match_count++) {
gchar *ptr = g_utf8_offset_to_pointer(utf8str, match_count);
gunichar ch;
if (!ptr) break;
ch = g_utf8_get_char(ptr);
if (case_sens) {
if (ch != wcs[match_count])
break;
} else {
if (g_unichar_tolower(ch) !=
g_unichar_tolower(wcs[match_count]))
break;
}
}
g_free(utf8str);
if (match_count == len)
return TRUE;
else
return FALSE;
}
guint gtkut_text_buffer_str_compare_n(GtkTextBuffer *textbuf,
guint pos1, guint pos2,
guint len, guint text_len)
{
guint i;
for (i = 0; i < len && pos1 + i < text_len && pos2 + i < text_len; i++) {
GtkTextIter start_iter, end_iter;
gchar *utf8str1, *utf8str2;
gtk_text_buffer_get_iter_at_offset(textbuf, &start_iter,
pos1 + i);
gtk_text_buffer_get_iter_at_offset(textbuf, &end_iter,
pos1 + i + 1);
utf8str1 = gtk_text_buffer_get_text(textbuf,
&start_iter,
&end_iter,
FALSE);
gtk_text_buffer_get_iter_at_offset(textbuf, &start_iter,
pos2 + i);
gtk_text_buffer_get_iter_at_offset(textbuf, &end_iter,
pos2 + i + 1);
utf8str2 = gtk_text_buffer_get_text(textbuf,
&start_iter,
&end_iter,
FALSE);
if (!utf8str1 || !utf8str2 || strcmp(utf8str1, utf8str2)) {
g_free(utf8str1);
g_free(utf8str2);
break;
}
g_free(utf8str1);
g_free(utf8str2);
}
return i;
}
guint gtkut_text_buffer_str_compare(GtkTextBuffer *textbuf,
guint start_pos, guint text_len,
const gchar *str)
{
gunichar *wcs;
guint len = 0;
glong items_read = 0, items_written = 0;
gboolean result;
GError *error = NULL;
if (!str) return 0;
wcs = g_utf8_to_ucs4(str, -1, &items_read, &items_written, &error);
if (error != NULL) {
g_warning("An error occured while converting a string from UTF-8 to UCS-4: %s\n",
error->message);
g_error_free(error);
}
if (!wcs || items_written <= 0) return 0;
len = (guint) items_written;
if (len > text_len - start_pos)
result = FALSE;
else
result = gtkut_text_buffer_match_string(textbuf, start_pos,
wcs, len,
TRUE);
g_free(wcs);
return result ? len : 0;
}
gboolean gtkut_text_buffer_is_uri_string(GtkTextBuffer *textbuf,
guint start_pos, guint text_len)
{
if (gtkut_text_buffer_str_compare(textbuf, start_pos, text_len, "http://") ||
gtkut_text_buffer_str_compare(textbuf, start_pos, text_len, "ftp://") ||
gtkut_text_buffer_str_compare(textbuf, start_pos, text_len, "https://") ||
gtkut_text_buffer_str_compare(textbuf, start_pos, text_len, "www."))
return TRUE;
return FALSE;
}
gchar *gtkut_text_view_get_selection(GtkTextView *textview)
{
GtkTextBuffer *buffer;
GtkTextIter start_iter, end_iter;
gboolean found;
g_return_val_if_fail(GTK_IS_TEXT_VIEW(textview), NULL);
buffer = gtk_text_view_get_buffer(textview);
found = gtk_text_buffer_get_selection_bounds(buffer,
&start_iter,
&end_iter);
if (found)
return gtk_text_buffer_get_text(buffer, &start_iter, &end_iter,
FALSE);
else
return NULL;
}
#endif /* FIXME_GTK2 */

View file

@ -32,7 +32,7 @@
#include <gtk/gtkeditable.h>
#include <gtk/gtkctree.h>
#include <gtk/gtkcombo.h>
#include "gtkstext.h"
#include <gtk/gtktextview.h>
#include <stdlib.h>
#if HAVE_WCHAR_H
# include <wchar.h>
@ -75,13 +75,11 @@
(GTK_CTREE_ROW(node)->row.data)
#define GTKUT_CTREE_REFRESH(clist) \
GTK_CLIST_CLASS(GTK_OBJECT(clist)->klass)->refresh(clist)
GTK_CLIST_GET_CLASS(clist)->refresh(clist)
gint gtkut_get_font_width (GdkFont *font);
gint gtkut_get_font_height (GdkFont *font);
GdkFont *gtkut_font_load (const gchar *fontset_name);
GdkFont *gtkut_font_load_from_fontset (const gchar *fontset_name);
gboolean gtkut_get_font_size (GtkWidget *widget,
gint *width,
gint *height);
void gtkut_convert_int_to_gdk_color (gint rgbvalue,
GdkColor *color);
@ -145,4 +143,24 @@ GtkWidget *gtkut_account_menu_new (GList *ac_list,
void gtkut_set_widget_bgcolor_rgb (GtkWidget *widget,
guint rgbvalue);
gboolean gtkut_text_buffer_match_string (GtkTextBuffer *text,
gint pos,
gunichar *wcs,
gint len,
gboolean case_sens);
guint gtkut_text_buffer_str_compare_n (GtkTextBuffer *text,
guint pos1,
guint pos2,
guint len,
guint text_len);
guint gtkut_text_buffer_str_compare (GtkTextBuffer *text,
guint start_pos,
guint text_len,
const gchar *str);
gboolean gtkut_text_buffer_is_uri_string(GtkTextBuffer *text,
guint start_pos,
guint text_len);
gchar *gtkut_text_view_get_selection (GtkTextView *textview);
#endif /* __GTKUTILS_H__ */

View file

@ -26,14 +26,14 @@
#define MANAGE_WINDOW_SIGNALS_CONNECT(window) \
{ \
gtk_signal_connect(GTK_OBJECT(window), "focus_in_event", \
GTK_SIGNAL_FUNC(manage_window_focus_in), NULL); \
gtk_signal_connect(GTK_OBJECT(window), "focus_out_event", \
GTK_SIGNAL_FUNC(manage_window_focus_out), NULL); \
gtk_signal_connect(GTK_OBJECT(window), "unmap_event", \
GTK_SIGNAL_FUNC(manage_window_unmap), NULL); \
gtk_signal_connect(GTK_OBJECT(window), "destroy", \
GTK_SIGNAL_FUNC(manage_window_destroy), NULL); \
g_signal_connect(G_OBJECT(window), "focus_in_event", \
G_CALLBACK(manage_window_focus_in), NULL); \
g_signal_connect(G_OBJECT(window), "focus_out_event", \
G_CALLBACK(manage_window_focus_out), NULL); \
g_signal_connect(G_OBJECT(window), "unmap_event", \
G_CALLBACK(manage_window_unmap), NULL); \
g_signal_connect(G_OBJECT(window), "destroy", \
G_CALLBACK(manage_window_destroy), NULL); \
}
gint manage_window_focus_in (GtkWidget *widget,

View file

@ -29,6 +29,7 @@
#include <gtk/gtkitemfactory.h>
#include <gtk/gtkcheckmenuitem.h>
#include <gtk/gtkbutton.h>
#include <gtk/gtkwindow.h>
#include "intl.h"
#include "menu.h"
@ -56,7 +57,7 @@ GtkWidget *menubar_create(GtkWidget *window, GtkItemFactoryEntry *entries,
gtk_item_factory_set_translate_func(factory, menu_translate,
NULL, NULL);
gtk_item_factory_create_items(factory, n_entries, entries, data);
gtk_accel_group_attach(factory->accel_group, GTK_OBJECT(window));
gtk_window_add_accel_group (GTK_WINDOW (window), factory->accel_group);
return gtk_item_factory_get_widget(factory, path);
}
@ -84,7 +85,7 @@ GtkWidget *popupmenu_create(GtkWidget *window, GtkItemFactoryEntry *entries,
gtk_item_factory_set_translate_func(factory, menu_translate,
NULL, NULL);
gtk_item_factory_create_items(factory, n_entries, entries, data);
gtk_accel_group_attach(accel_group, GTK_OBJECT(window));
gtk_window_add_accel_group(GTK_WINDOW (window), accel_group);
return gtk_item_factory_get_widget(factory, path);
}
@ -106,6 +107,8 @@ static void factory_print_func(gpointer data, gchar *string)
g_string_append_c(out_str, '\n');
}
#warning FIXME_GTK2
#if 0
GString *menu_factory_get_rc(const gchar *path)
{
GString *string;
@ -178,6 +181,7 @@ void menu_factory_copy_rc(const gchar *src_path, const gchar *dest_path)
gtk_item_factory_parse_rc_string(string->str);
g_string_free(string, TRUE);
}
#endif
void menu_set_sensitive(GtkItemFactory *ifactory, const gchar *path,
gboolean sensitive)
@ -223,42 +227,25 @@ void menu_toggle_toggle(GtkItemFactory *ifactory, const gchar *path)
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), !((GTK_CHECK_MENU_ITEM(widget))->active));
}
void menu_button_position(GtkMenu *menu, gint *x, gint *y, gpointer user_data)
void menu_button_position(GtkMenu *menu, gint *x, gint *y, gboolean *push_in,
gpointer user_data)
{
GtkWidget *button;
GtkRequisition requisition;
gint button_xpos, button_ypos;
gint xpos, ypos;
gint width, height;
gint scr_width, scr_height;
GtkWidget *widget;
gint wheight;
gint wx, wy;
g_return_if_fail(user_data != NULL);
g_return_if_fail(GTK_IS_BUTTON(user_data));
g_return_if_fail(x && y);
g_return_if_fail(GTK_IS_BUTTON(user_data));
button = GTK_WIDGET(user_data);
widget = GTK_WIDGET(user_data);
gtk_widget_get_child_requisition(GTK_WIDGET(menu), &requisition);
width = requisition.width;
height = requisition.height;
gdk_window_get_origin(button->window, &button_xpos, &button_ypos);
xpos = button_xpos;
ypos = button_ypos + button->allocation.height;
scr_width = gdk_screen_width();
scr_height = gdk_screen_height();
if (xpos + width > scr_width)
xpos -= (xpos + width) - scr_width;
if (ypos + height > scr_height)
ypos = button_ypos - height;
if (xpos < 0)
xpos = 0;
if (ypos < 0)
ypos = 0;
*x = xpos;
*y = ypos;
gdk_window_get_origin(widget->window, x, y);
wheight = widget->requisition.height;
wx = widget->allocation.x;
wy = widget->allocation.y;
*y = *y + wy + wheight;
*x = *x + wx;
}
gint menu_find_option_menu_index(GtkOptionMenu *optmenu, gpointer data,
@ -275,7 +262,8 @@ gint menu_find_option_menu_index(GtkOptionMenu *optmenu, gpointer data,
for (cur = GTK_MENU_SHELL(menu)->children, n = 0;
cur != NULL; cur = cur->next, n++) {
menuitem = GTK_WIDGET(cur->data);
menu_data = gtk_object_get_user_data(GTK_OBJECT(menuitem));
menu_data = g_object_get_data(G_OBJECT(menuitem),
MENU_VAL_ID);
if (func) {
if (func(menu_data, data) == 0)
return n;
@ -291,6 +279,8 @@ static void menu_item_add_accel( GtkWidget *widget, guint accel_signal_id, GtkAc
guint accel_key, GdkModifierType accel_mods, GtkAccelFlags accel_flags,
gpointer user_data)
{
#warning FIXME_GTK2
#if 0
GtkWidget *connected = GTK_WIDGET(user_data);
if (gtk_signal_n_emissions_by_name(GTK_OBJECT(widget),"add_accelerator") > 1 ) return;
gtk_widget_remove_accelerators(connected,"activate",FALSE);
@ -302,26 +292,30 @@ static void menu_item_add_accel( GtkWidget *widget, guint accel_signal_id, GtkAc
accel_key, accel_mods,
GTK_ACCEL_VISIBLE );
gtk_accel_group_unlock_entry(accel_group,accel_key,accel_mods);
#endif
}
static void menu_item_remove_accel(GtkWidget *widget, GtkAccelGroup *accel_group,
guint accel_key, GdkModifierType accel_mods,
gpointer user_data)
{
#warning FIXME_GTK2
#if 0
GtkWidget *wid = GTK_WIDGET(user_data);
if (gtk_signal_n_emissions_by_name(GTK_OBJECT(widget),
"remove_accelerator") > 2 )
return;
gtk_widget_remove_accelerators(wid,"activate",FALSE);
#endif
}
static void connect_accel_change_signals(GtkWidget* widget, GtkWidget *wid2)
{
gtk_signal_connect_after(GTK_OBJECT(widget), "add_accelerator",
menu_item_add_accel, wid2);
G_CALLBACK(menu_item_add_accel), wid2);
gtk_signal_connect_after(GTK_OBJECT(widget), "remove_accelerator",
menu_item_remove_accel, wid2);
G_CALLBACK(menu_item_remove_accel), wid2);
}
void menu_connect_identical_items(void)

View file

@ -27,14 +27,17 @@
#include <gtk/gtkmenushell.h>
#include <gtk/gtkoptionmenu.h>
#define MENU_VAL_ID "Sylpheed::Menu::ValueID"
#define MENUITEM_ADD(menu, menuitem, label, data) \
{ \
menuitem = gtk_menu_item_new_with_label(label); \
gtk_widget_show(menuitem); \
gtk_menu_append(GTK_MENU(menu), menuitem); \
gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); \
if (data) \
gtk_object_set_user_data(GTK_OBJECT(menuitem), \
GINT_TO_POINTER(data)); \
g_object_set_data(G_OBJECT(menuitem), \
MENU_VAL_ID, \
GINT_TO_POINTER(data)); \
}
#define menu_set_insensitive_all(menu_shell) \
@ -75,6 +78,7 @@ void menu_toggle_toggle (GtkItemFactory *ifactory,
void menu_button_position (GtkMenu *menu,
gint *x,
gint *y,
gboolean *push_in,
gpointer user_data);
gint menu_find_option_menu_index(GtkOptionMenu *optmenu,

View file

@ -54,11 +54,16 @@ static void set_plugin_list(PluginWindow *pluginwindow)
gchar *text[1];
gint row;
GtkCList *clist = GTK_CLIST(pluginwindow->plugin_list);
GtkTextBuffer *textbuf;
GtkTextIter start_iter, end_iter;
plugins = plugin_get_list();
gtk_clist_freeze(clist);
gtk_clist_clear(clist);
gtk_editable_delete_text(GTK_EDITABLE(pluginwindow->plugin_desc), 0, -1);
textbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(pluginwindow->plugin_desc));
gtk_text_buffer_get_start_iter(textbuf, &start_iter);
gtk_text_buffer_get_end_iter(textbuf, &end_iter);
gtk_text_buffer_delete(textbuf, &start_iter, &end_iter);
gtk_widget_set_sensitive(pluginwindow->unload_btn, FALSE);
for(cur = plugins; cur != NULL; cur = g_slist_next(cur)) {
@ -75,17 +80,20 @@ static void select_row_cb(GtkCList *clist, gint row, gint column,
GdkEventButton *event, PluginWindow *pluginwindow)
{
Plugin *plugin;
GtkEditable *plugin_desc = GTK_EDITABLE(pluginwindow->plugin_desc);
GtkTextView *plugin_desc = GTK_TEXT_VIEW(pluginwindow->plugin_desc);
GtkTextBuffer *textbuf = gtk_text_view_get_buffer(plugin_desc);
GtkTextIter start_iter, end_iter;
const gchar *text;
gint pos = 0;
plugin = (Plugin *) gtk_clist_get_row_data(clist, row);
pluginwindow->selected_plugin = plugin;
if (pluginwindow->selected_plugin != NULL) {
gtk_editable_delete_text(plugin_desc, 0, -1);
gtk_text_buffer_get_start_iter(textbuf, &start_iter);
gtk_text_buffer_get_end_iter(textbuf, &end_iter);
gtk_text_buffer_delete(textbuf, &start_iter, &end_iter);
text = plugin_get_desc(plugin);
gtk_editable_insert_text(plugin_desc, text, strlen(text), &pos);
gtk_text_buffer_insert(textbuf, &start_iter, text, strlen(text));
gtk_widget_set_sensitive(pluginwindow->unload_btn, TRUE);
} else {
gtk_widget_set_sensitive(pluginwindow->unload_btn, FALSE);
@ -200,7 +208,7 @@ void pluginwindow_create()
(scrolledwindow3), GTK_POLICY_NEVER,
GTK_POLICY_ALWAYS);
plugin_desc = gtk_text_new(NULL, NULL);
plugin_desc = gtk_text_view_new();
gtk_widget_show(plugin_desc);
gtk_container_add(GTK_CONTAINER(scrolledwindow3), plugin_desc);
@ -227,7 +235,7 @@ void pluginwindow_create()
GTK_WIDGET_SET_FLAGS(close_btn, GTK_CAN_DEFAULT);
/* ----------------------------------------------------------- */
gtk_text_set_word_wrap(GTK_TEXT(plugin_desc), TRUE);
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(plugin_desc), GTK_WRAP_WORD);
gtk_widget_set_sensitive(GTK_WIDGET(unload_btn), FALSE);
pluginwindow = g_new0(PluginWindow, 1);

View file

@ -0,0 +1,2 @@
NONE:POINTER
NONE:INT,POINTER

View file

@ -30,7 +30,7 @@
#include <gtk/gtkhbox.h>
#include <gtk/gtkvbox.h>
#include <gtk/gtklabel.h>
#include <gtk/gtkpixmap.h>
#include <gtk/gtkimage.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
@ -46,7 +46,7 @@
#include "gtkutils.h"
#include "utils.h"
static GdkFont *boldfont;
PangoFontDescription *boldfont;
#define TR(str) (prefs_common.trans_hdr ? gettext(str) : str)
@ -133,17 +133,14 @@ HeaderView *headerview_create(void)
void headerview_init(HeaderView *headerview)
{
if (!boldfont)
boldfont = gtkut_font_load(BOLD_FONT);
if (!boldfont && BOLD_FONT)
boldfont = pango_font_description_from_string
(BOLD_FONT);
#define SET_FONT_STYLE(wid) \
{ \
GtkStyle *style; \
\
style = gtk_style_copy(gtk_widget_get_style(headerview->wid)); \
if (boldfont) \
style->font = boldfont; \
gtk_widget_set_style(headerview->wid, style); \
gtk_widget_modify_font(headerview->wid, boldfont); \
}
SET_FONT_STYLE(from_header_label);
@ -168,38 +165,25 @@ void headerview_init(HeaderView *headerview)
void headerview_show(HeaderView *headerview, MsgInfo *msginfo)
{
gchar *str;
headerview_clear(headerview);
if (msginfo->from) {
Xstrdup_a(str, msginfo->from, return);
conv_unreadable_locale(str);
} else
str = NULL;
gtk_label_set_text(GTK_LABEL(headerview->from_body_label),
str ? str : _("(No From)"));
msginfo->from ? msginfo->from : _("(No From)"));
if (msginfo->to) {
Xstrdup_a(str, msginfo->to, return);
conv_unreadable_locale(str);
gtk_label_set_text(GTK_LABEL(headerview->to_body_label), str);
gtk_label_set_text(GTK_LABEL(headerview->to_body_label),
msginfo->to);
gtk_widget_show(headerview->to_header_label);
gtk_widget_show(headerview->to_body_label);
}
if (msginfo->newsgroups) {
Xstrdup_a(str, msginfo->newsgroups, return);
conv_unreadable_locale(str);
gtk_label_set_text(GTK_LABEL(headerview->ng_body_label), str);
gtk_label_set_text(GTK_LABEL(headerview->ng_body_label),
msginfo->newsgroups);
gtk_widget_show(headerview->ng_header_label);
gtk_widget_show(headerview->ng_body_label);
}
if (msginfo->subject) {
Xstrdup_a(str, msginfo->subject, return);
conv_unreadable_locale(str);
} else
str = NULL;
gtk_label_set_text(GTK_LABEL(headerview->subject_body_label),
str ? str : _("(No Subject)"));
msginfo->subject ? msginfo->subject :
_("(No Subject)"));
#if HAVE_LIBCOMPFACE
headerview_show_xface(headerview, msginfo);
@ -241,12 +225,12 @@ static void headerview_show_xface(HeaderView *headerview, MsgInfo *msginfo)
if (!headerview->image) {
GtkWidget *image;
image = gtk_pixmap_new(pixmap, mask);
image = gtk_image_new_from_pixmap(pixmap, mask);
gtk_box_pack_start(GTK_BOX(hbox), image, FALSE, FALSE, 0);
gtk_widget_show(image);
headerview->image = image;
} else {
gtk_pixmap_set(GTK_PIXMAP(headerview->image), pixmap, mask);
gtk_image_set_from_pixmap(GTK_IMAGE(headerview->image), pixmap, mask);
gtk_widget_show(headerview->image);
}

View file

@ -392,8 +392,8 @@ static gchar *search_array_str (GPtrArray *array,
static void imap_path_separator_subst (gchar *str,
gchar separator);
static gchar *imap_modified_utf7_to_locale (const gchar *mutf7_str);
static gchar *imap_locale_to_modified_utf7 (const gchar *from);
static gchar *imap_utf8_to_modified_utf7 (const gchar *from);
static gchar *imap_modified_utf7_to_utf8 (const gchar *mutf7_str);
static GSList *imap_get_seq_set_from_numlist (MsgNumberList *msglist);
static GSList *imap_get_seq_set_from_msglist (MsgInfoList *msglist);
@ -1298,7 +1298,7 @@ static gint imap_scan_tree_recursive(IMAPSession *session, FolderItem *item)
new_item->stype = F_INBOX;
folder->inbox = new_item;
} else if (!item->parent || item->stype == F_INBOX) {
gchar *base;
const gchar *base;
base = g_basename(new_item->path);
@ -1333,7 +1333,7 @@ static GSList *imap_parse_list(IMAPFolder *folder, IMAPSession *session,
gchar flags[256];
gchar separator_str[16];
gchar *p;
gchar *name;
const gchar *name;
gchar *loc_name, *loc_path;
GSList *item_list = NULL;
GString *str;
@ -1391,8 +1391,8 @@ static GSList *imap_parse_list(IMAPFolder *folder, IMAPSession *session,
name = g_basename(buf);
if (name[0] == '.') continue;
loc_name = imap_modified_utf7_to_locale(name);
loc_path = imap_modified_utf7_to_locale(buf);
loc_name = imap_modified_utf7_to_utf8(name);
loc_path = imap_modified_utf7_to_utf8(buf);
new_item = folder_item_new(FOLDER(folder), loc_name, loc_path);
if (strcasestr(flags, "\\Noinferiors") != NULL)
new_item->no_sub = TRUE;
@ -1561,7 +1561,7 @@ FolderItem *imap_create_folder(Folder *folder, FolderItem *parent,
/* keep trailing directory separator to create a folder that contains
sub folder */
imap_path = imap_locale_to_modified_utf7(dirpath);
imap_path = imap_utf8_to_modified_utf7(dirpath);
strtailchomp(dirpath, '/');
Xstrdup_a(new_name, name, {g_free(dirpath); return NULL;});
strtailchomp(new_name, '/');
@ -1663,7 +1663,7 @@ gint imap_rename_folder(Folder *folder, FolderItem *item, const gchar *name)
} else
newpath = g_strdup(name);
real_newpath = imap_locale_to_modified_utf7(newpath);
real_newpath = imap_utf8_to_modified_utf7(newpath);
imap_path_separator_subst(real_newpath, separator);
ok = imap_cmd_rename(session, real_oldpath, real_newpath);
@ -2079,7 +2079,7 @@ static gchar *imap_get_real_path(IMAPFolder *folder, const gchar *path)
g_return_val_if_fail(folder != NULL, NULL);
g_return_val_if_fail(path != NULL, NULL);
real_path = imap_locale_to_modified_utf7(path);
real_path = imap_utf8_to_modified_utf7(path);
separator = imap_get_path_separator(folder, path);
imap_path_separator_subst(real_path, separator);
@ -3218,7 +3218,7 @@ static void imap_path_separator_subst(gchar *str, gchar separator)
}
}
static gchar *imap_modified_utf7_to_locale(const gchar *mutf7_str)
static gchar *imap_modified_utf7_to_utf8(const gchar *mutf7_str)
{
#if !HAVE_ICONV
const gchar *from_p;
@ -3251,10 +3251,9 @@ static gchar *imap_modified_utf7_to_locale(const gchar *mutf7_str)
if (!iconv_ok) return g_strdup(mutf7_str);
if (cd == (iconv_t)-1) {
cd = iconv_open(conv_get_current_charset_str(), "UTF-7");
cd = iconv_open(conv_get_current_charset_str(), CS_UTF_8);
if (cd == (iconv_t)-1) {
g_warning("iconv cannot convert UTF-7 to %s\n",
conv_get_current_charset_str());
g_warning(_("iconv cannot convert UTF-7 to UTF-8\n"));
iconv_ok = FALSE;
return g_strdup(mutf7_str);
}
@ -3291,8 +3290,7 @@ static gchar *imap_modified_utf7_to_locale(const gchar *mutf7_str)
if (iconv(cd, (ICONV_CONST gchar **)&norm_utf7_p, &norm_utf7_len,
&to_p, &to_len) == -1) {
g_warning(_("iconv cannot convert UTF-7 to %s\n"),
conv_get_current_charset_str());
g_warning(_("iconv cannot convert UTF-7 to UTF-8\n"));
g_string_free(norm_utf7, TRUE);
g_free(to_str);
return g_strdup(mutf7_str);
@ -3307,7 +3305,7 @@ static gchar *imap_modified_utf7_to_locale(const gchar *mutf7_str)
#endif /* !HAVE_ICONV */
}
static gchar *imap_locale_to_modified_utf7(const gchar *from)
static gchar *imap_utf8_to_modified_utf7(const gchar *from)
{
#if !HAVE_ICONV
const gchar *from_p;
@ -3338,10 +3336,9 @@ static gchar *imap_locale_to_modified_utf7(const gchar *from)
if (!iconv_ok) return g_strdup(from);
if (cd == (iconv_t)-1) {
cd = iconv_open("UTF-7", conv_get_current_charset_str());
cd = iconv_open("UTF-7", CS_UTF_8);
if (cd == (iconv_t)-1) {
g_warning("iconv cannot convert %s to UTF-7\n",
conv_get_current_charset_str());
g_warning("iconv cannot convert UTF-8 to UTF-7\n");
iconv_ok = FALSE;
return g_strdup(from);
}
@ -3388,8 +3385,7 @@ static gchar *imap_locale_to_modified_utf7(const gchar *from)
if (iconv(cd, (ICONV_CONST gchar **)&from_tmp,
&conv_len,
&norm_utf7_p, &norm_utf7_len) == -1) {
g_warning("iconv cannot convert %s to UTF-7\n",
conv_get_current_charset_str());
g_warning(_("iconv cannot convert UTF-8 to UTF-7\n"));
return g_strdup(from);
}

View file

@ -47,6 +47,7 @@
#include "gtkutils.h"
#include "manage_window.h"
#include "folder.h"
#include "codeconv.h"
static GtkWidget *window;
static GtkWidget *file_entry;
@ -63,7 +64,7 @@ static void import_cancel_cb(GtkWidget *widget, gpointer data);
static void import_filesel_cb(GtkWidget *widget, gpointer data);
static void import_destsel_cb(GtkWidget *widget, gpointer data);
static gint delete_event(GtkWidget *widget, GdkEventAny *event, gpointer data);
static void key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data);
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data);
gint import_mbox(FolderItem *default_dest)
{
@ -91,12 +92,25 @@ gint import_mbox(FolderItem *default_dest)
gtk_main();
if (import_ack) {
gchar *filename, *destdir;
const gchar *utf8filename, *destdir;
FolderItem *dest;
filename = gtk_entry_get_text(GTK_ENTRY(file_entry));
utf8filename = gtk_entry_get_text(GTK_ENTRY(file_entry));
destdir = gtk_entry_get_text(GTK_ENTRY(dest_entry));
if (filename && *filename) {
if (utf8filename && *utf8filename) {
const gchar *src_codeset = CS_UTF_8;
const gchar *dest_codeset = conv_get_current_charset_str();
gchar *filename;
#warning FIXME_GTK2 /* should we use g_filename_from_utf8? */
filename = conv_codeset_strdup(utf8filename,
src_codeset,
dest_codeset);
if (!filename) {
g_warning("faild to convert character set\n");
filename = g_strdup(utf8filename);
}
if (!destdir || !*destdir) {
dest = folder_find_item_from_path(INBOX_DIR);
} else
@ -108,6 +122,8 @@ gint import_mbox(FolderItem *default_dest)
} else {
ok = proc_mbox(dest, filename);
}
g_free(filename);
}
}
@ -126,16 +142,16 @@ static void import_create(void)
GtkWidget *dest_label;
GtkWidget *confirm_area;
window = gtk_window_new(GTK_WINDOW_DIALOG);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), _("Import"));
gtk_container_set_border_width(GTK_CONTAINER(window), 5);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_window_set_policy(GTK_WINDOW(window), FALSE, TRUE, FALSE);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(delete_event), NULL);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(key_pressed), NULL);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(delete_event), NULL);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(key_pressed), NULL);
MANAGE_WINDOW_SIGNALS_CONNECT(window);
vbox = gtk_vbox_new(FALSE, 4);
@ -154,7 +170,7 @@ static void import_create(void)
gtk_container_set_border_width(GTK_CONTAINER(table), 8);
gtk_table_set_row_spacings(GTK_TABLE(table), 8);
gtk_table_set_col_spacings(GTK_TABLE(table), 8);
gtk_widget_set_usize(table, 420, -1);
gtk_widget_set_size_request(table, 420, -1);
file_label = gtk_label_new(_("Importing file:"));
gtk_table_attach(GTK_TABLE(table), file_label, 0, 1, 0, 1,
@ -177,14 +193,14 @@ static void import_create(void)
file_button = gtk_button_new_with_label(_(" Select... "));
gtk_table_attach(GTK_TABLE(table), file_button, 2, 3, 0, 1,
0, 0, 0, 0);
gtk_signal_connect(GTK_OBJECT(file_button), "clicked",
GTK_SIGNAL_FUNC(import_filesel_cb), NULL);
g_signal_connect(G_OBJECT(file_button), "clicked",
G_CALLBACK(import_filesel_cb), NULL);
dest_button = gtk_button_new_with_label(_(" Select... "));
gtk_table_attach(GTK_TABLE(table), dest_button, 2, 3, 1, 2,
0, 0, 0, 0);
gtk_signal_connect(GTK_OBJECT(dest_button), "clicked",
GTK_SIGNAL_FUNC(import_destsel_cb), NULL);
g_signal_connect(G_OBJECT(dest_button), "clicked",
G_CALLBACK(import_destsel_cb), NULL);
gtkut_button_set_create(&confirm_area,
&ok_button, _("OK"),
@ -193,10 +209,10 @@ static void import_create(void)
gtk_box_pack_end(GTK_BOX(vbox), confirm_area, FALSE, FALSE, 0);
gtk_widget_grab_default(ok_button);
gtk_signal_connect(GTK_OBJECT(ok_button), "clicked",
GTK_SIGNAL_FUNC(import_ok_cb), NULL);
gtk_signal_connect(GTK_OBJECT(cancel_button), "clicked",
GTK_SIGNAL_FUNC(import_cancel_cb), NULL);
g_signal_connect(G_OBJECT(ok_button), "clicked",
G_CALLBACK(import_ok_cb), NULL);
g_signal_connect(G_OBJECT(cancel_button), "clicked",
G_CALLBACK(import_cancel_cb), NULL);
gtk_widget_show_all(window);
}
@ -220,7 +236,20 @@ static void import_filesel_cb(GtkWidget *widget, gpointer data)
gchar *filename;
filename = filesel_select_file(_("Select importing file"), NULL);
if (filename)
if (!filename) return;
if (g_getenv ("G_BROKEN_FILENAMES")) {
const gchar *oldstr = filename;
filename = conv_codeset_strdup (filename,
conv_get_current_charset_str(),
CS_UTF_8);
if (!filename) {
g_warning("import_filesel_cb(): faild to convert character set.");
filename = g_strdup(oldstr);
}
gtk_entry_set_text(GTK_ENTRY(file_entry), filename);
g_free(filename);
} else
gtk_entry_set_text(GTK_ENTRY(file_entry), filename);
}
@ -243,8 +272,9 @@ static gint delete_event(GtkWidget *widget, GdkEventAny *event, gpointer data)
return TRUE;
}
static void key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
if (event && event->keyval == GDK_Escape)
import_cancel_cb(NULL, NULL);
return FALSE;
}

View file

@ -184,7 +184,7 @@ static void imp_ldif_message( void ) {
gchar *sMsg = NULL;
gint pageNum;
pageNum = gtk_notebook_current_page( GTK_NOTEBOOK(impldif_dlg.notebook) );
pageNum = gtk_notebook_get_current_page( GTK_NOTEBOOK(impldif_dlg.notebook) );
if( pageNum == PAGE_FILE_INFO ) {
sMsg = _( "Please specify address book name and file to import." );
}
@ -321,14 +321,14 @@ static void imp_ldif_field_list_selected(
* \param event Event object.
* \param data Data.
*/
static void imp_ldif_field_list_toggle(
static gboolean imp_ldif_field_list_toggle(
GtkCList *clist, GdkEventButton *event, gpointer data )
{
Ldif_FieldRec *rec;
gboolean toggle = FALSE;
if( ! event ) return;
if( impldif_dlg.rowIndSelect < 0 ) return;
if( ! event ) return FALSE;
if( impldif_dlg.rowIndSelect < 0 ) return FALSE;
if( event->button == 1 ) {
/* If single click in select column */
if( event->type == GDK_BUTTON_PRESS ) {
@ -337,8 +337,8 @@ static void imp_ldif_field_list_toggle(
gint row, col;
gtk_clist_get_selection_info( clist, x, y, &row, &col );
if( col != FIELD_COL_SELECT ) return;
if( row > impldif_dlg.rowCount ) return;
if( col != FIELD_COL_SELECT ) return FALSE;
if( row > impldif_dlg.rowCount ) return FALSE;
/* Set row */
impldif_dlg.rowIndSelect = row;
@ -359,6 +359,7 @@ static void imp_ldif_field_list_toggle(
imp_ldif_update_row( clist );
}
}
return FALSE;
}
/**
@ -506,10 +507,10 @@ static void imp_ldif_finish_show() {
static void imp_ldif_prev( GtkWidget *widget ) {
gint pageNum;
pageNum = gtk_notebook_current_page( GTK_NOTEBOOK(impldif_dlg.notebook) );
pageNum = gtk_notebook_get_current_page( GTK_NOTEBOOK(impldif_dlg.notebook) );
if( pageNum == PAGE_ATTRIBUTES ) {
/* Goto file page stuff */
gtk_notebook_set_page(
gtk_notebook_set_current_page(
GTK_NOTEBOOK(impldif_dlg.notebook), PAGE_FILE_INFO );
gtk_widget_set_sensitive( impldif_dlg.btnPrev, FALSE );
}
@ -523,11 +524,11 @@ static void imp_ldif_prev( GtkWidget *widget ) {
static void imp_ldif_next( GtkWidget *widget ) {
gint pageNum;
pageNum = gtk_notebook_current_page( GTK_NOTEBOOK(impldif_dlg.notebook) );
pageNum = gtk_notebook_get_current_page( GTK_NOTEBOOK(impldif_dlg.notebook) );
if( pageNum == PAGE_FILE_INFO ) {
/* Goto attributes stuff */
if( imp_ldif_file_move() ) {
gtk_notebook_set_page(
gtk_notebook_set_current_page(
GTK_NOTEBOOK(impldif_dlg.notebook), PAGE_ATTRIBUTES );
imp_ldif_message();
gtk_widget_set_sensitive( impldif_dlg.btnPrev, TRUE );
@ -539,7 +540,7 @@ static void imp_ldif_next( GtkWidget *widget ) {
else if( pageNum == PAGE_ATTRIBUTES ) {
/* Goto finish stuff */
if( imp_ldif_field_move() ) {
gtk_notebook_set_page(
gtk_notebook_set_current_page(
GTK_NOTEBOOK(impldif_dlg.notebook), PAGE_FINISH );
imp_ldif_finish_show();
}
@ -554,7 +555,7 @@ static void imp_ldif_next( GtkWidget *widget ) {
static void imp_ldif_cancel( GtkWidget *widget, gpointer data ) {
gint pageNum;
pageNum = gtk_notebook_current_page( GTK_NOTEBOOK(impldif_dlg.notebook) );
pageNum = gtk_notebook_get_current_page( GTK_NOTEBOOK(impldif_dlg.notebook) );
if( pageNum != PAGE_FINISH ) {
impldif_dlg.cancelled = TRUE;
}
@ -567,7 +568,7 @@ static void imp_ldif_cancel( GtkWidget *widget, gpointer data ) {
* \param data User data.
*/
static void imp_ldif_file_ok( GtkWidget *widget, gpointer data ) {
gchar *sFile;
const gchar *sFile;
AddressFileSelection *afs;
GtkWidget *fileSel;
@ -604,10 +605,10 @@ static void imp_ldif_file_select_create( AddressFileSelection *afs ) {
fileSelector = gtk_file_selection_new( _("Select LDIF File") );
gtk_file_selection_hide_fileop_buttons( GTK_FILE_SELECTION(fileSelector) );
gtk_signal_connect( GTK_OBJECT (GTK_FILE_SELECTION(fileSelector)->ok_button),
"clicked", GTK_SIGNAL_FUNC (imp_ldif_file_ok), ( gpointer ) afs );
gtk_signal_connect( GTK_OBJECT (GTK_FILE_SELECTION(fileSelector)->cancel_button),
"clicked", GTK_SIGNAL_FUNC (imp_ldif_file_cancel), ( gpointer ) afs );
g_signal_connect( G_OBJECT (GTK_FILE_SELECTION(fileSelector)->ok_button),
"clicked", G_CALLBACK (imp_ldif_file_ok), ( gpointer ) afs );
g_signal_connect( G_OBJECT (GTK_FILE_SELECTION(fileSelector)->cancel_button),
"clicked", G_CALLBACK (imp_ldif_file_cancel), ( gpointer ) afs );
afs->fileSelector = fileSelector;
afs->cancelled = TRUE;
}
@ -646,10 +647,11 @@ static gint imp_ldif_delete_event( GtkWidget *widget, GdkEventAny *event, gpoint
* \param event Event object.
* \param data User data.
*/
static void imp_ldif_key_pressed( GtkWidget *widget, GdkEventKey *event, gpointer data ) {
static gboolean imp_ldif_key_pressed( GtkWidget *widget, GdkEventKey *event, gpointer data ) {
if (event && event->keyval == GDK_Escape) {
imp_ldif_cancel( widget, data );
}
return FALSE;
}
/**
@ -730,8 +732,8 @@ static void imp_ldif_page_file( gint pageNum, gchar *pageLbl ) {
gtk_widget_show_all(vbox);
/* Button handler */
gtk_signal_connect(GTK_OBJECT(btnFile), "clicked",
GTK_SIGNAL_FUNC(imp_ldif_file_select), NULL);
g_signal_connect(G_OBJECT(btnFile), "clicked",
G_CALLBACK(imp_ldif_file_select), NULL);
impldif_dlg.entryFile = entryFile;
impldif_dlg.entryName = entryName;
@ -898,12 +900,12 @@ static void imp_ldif_page_fields( gint pageNum, gchar *pageLbl ) {
gtk_widget_show_all(vbox);
/* Event handlers */
gtk_signal_connect( GTK_OBJECT(clist_field), "select_row",
GTK_SIGNAL_FUNC(imp_ldif_field_list_selected), NULL );
gtk_signal_connect( GTK_OBJECT(clist_field), "button_press_event",
GTK_SIGNAL_FUNC(imp_ldif_field_list_toggle), NULL );
gtk_signal_connect( GTK_OBJECT(btnModify), "clicked",
GTK_SIGNAL_FUNC(imp_ldif_modify_pressed), NULL );
g_signal_connect( G_OBJECT(clist_field), "select_row",
G_CALLBACK(imp_ldif_field_list_selected), NULL );
g_signal_connect( G_OBJECT(clist_field), "button_press_event",
G_CALLBACK(imp_ldif_field_list_toggle), NULL );
g_signal_connect( G_OBJECT(btnModify), "clicked",
G_CALLBACK(imp_ldif_modify_pressed), NULL );
impldif_dlg.clist_field = clist_field;
impldif_dlg.entryField = entryField;
@ -993,18 +995,18 @@ static void imp_ldif_dialog_create() {
GtkWidget *hsbox;
GtkWidget *statusbar;
window = gtk_window_new(GTK_WINDOW_DIALOG);
gtk_widget_set_usize(window, IMPORTLDIF_WIDTH, IMPORTLDIF_HEIGHT );
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window, IMPORTLDIF_WIDTH, IMPORTLDIF_HEIGHT );
gtk_container_set_border_width( GTK_CONTAINER(window), 0 );
gtk_window_set_title( GTK_WINDOW(window), _("Import LDIF file into Address Book") );
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(imp_ldif_delete_event),
NULL );
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(imp_ldif_key_pressed),
NULL );
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(imp_ldif_delete_event),
NULL );
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(imp_ldif_key_pressed),
NULL );
vbox = gtk_vbox_new(FALSE, 4);
gtk_widget_show(vbox);
@ -1037,12 +1039,12 @@ static void imp_ldif_dialog_create() {
gtk_widget_grab_default(btnNext);
/* Button handlers */
gtk_signal_connect(GTK_OBJECT(btnPrev), "clicked",
GTK_SIGNAL_FUNC(imp_ldif_prev), NULL);
gtk_signal_connect(GTK_OBJECT(btnNext), "clicked",
GTK_SIGNAL_FUNC(imp_ldif_next), NULL);
gtk_signal_connect(GTK_OBJECT(btnCancel), "clicked",
GTK_SIGNAL_FUNC(imp_ldif_cancel), NULL);
g_signal_connect(G_OBJECT(btnPrev), "clicked",
G_CALLBACK(imp_ldif_prev), NULL);
g_signal_connect(G_OBJECT(btnNext), "clicked",
G_CALLBACK(imp_ldif_next), NULL);
g_signal_connect(G_OBJECT(btnCancel), "clicked",
G_CALLBACK(imp_ldif_cancel), NULL);
gtk_widget_show_all(vbox);
@ -1090,7 +1092,7 @@ AddressBookFile *addressbook_imp_ldif( AddressIndex *addrIndex ) {
gtk_label_set_text( GTK_LABEL(impldif_dlg.entryField), "" );
gtk_entry_set_text( GTK_ENTRY(impldif_dlg.entryAttrib), "" );
gtk_clist_clear( GTK_CLIST(impldif_dlg.clist_field) );
gtk_notebook_set_page( GTK_NOTEBOOK(impldif_dlg.notebook), PAGE_FILE_INFO );
gtk_notebook_set_current_page( GTK_NOTEBOOK(impldif_dlg.notebook), PAGE_FILE_INFO );
gtk_widget_set_sensitive( impldif_dlg.btnPrev, FALSE );
gtk_widget_set_sensitive( impldif_dlg.btnNext, TRUE );
stock_pixmap_gdk( impldif_dlg.window, STOCK_PIXMAP_MARK,

View file

@ -155,7 +155,7 @@ static void imp_mutt_cancel( GtkWidget *widget, gboolean *cancelled ) {
}
static void imp_mutt_file_ok( GtkWidget *widget, gpointer data ) {
gchar *sFile;
const gchar *sFile;
AddressFileSelection *afs;
GtkWidget *fileSel;
@ -233,7 +233,7 @@ static void imp_mutt_create( gboolean *cancelled ) {
GtkWidget *hsbox;
gint top;
window = gtk_window_new(GTK_WINDOW_DIALOG);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize(window, 450, -1);
gtk_container_set_border_width( GTK_CONTAINER(window), 0 );
gtk_window_set_title( GTK_WINDOW(window), _("Import MUTT file into Address Book") );

View file

@ -155,7 +155,7 @@ static void imp_pine_cancel( GtkWidget *widget, gboolean *cancelled ) {
}
static void imp_pine_file_ok( GtkWidget *widget, gpointer data ) {
gchar *sFile;
const gchar *sFile;
AddressFileSelection *afs;
GtkWidget *fileSel;
@ -233,7 +233,7 @@ static void imp_pine_create( gboolean *cancelled ) {
GtkWidget *hsbox;
gint top;
window = gtk_window_new(GTK_WINDOW_DIALOG);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize(window, 450, -1);
gtk_container_set_border_width( GTK_CONTAINER(window), 0 );
gtk_window_set_title( GTK_WINDOW(window), _("Import Pine file into Address Book") );

View file

@ -349,10 +349,10 @@ static IncProgressDialog *inc_progress_dialog_create(gboolean autocheck)
progress = progress_dialog_create();
gtk_window_set_title(GTK_WINDOW(progress->window),
_("Retrieving new messages"));
gtk_signal_connect(GTK_OBJECT(progress->cancel_btn), "clicked",
GTK_SIGNAL_FUNC(inc_cancel_cb), dialog);
gtk_signal_connect(GTK_OBJECT(progress->window), "delete_event",
GTK_SIGNAL_FUNC(inc_dialog_delete_cb), dialog);
g_signal_connect(G_OBJECT(progress->cancel_btn), "clicked",
G_CALLBACK(inc_cancel_cb), dialog);
g_signal_connect(G_OBJECT(progress->window), "delete_event",
G_CALLBACK(inc_dialog_delete_cb), dialog);
/* manage_window_set_transient(GTK_WINDOW(progress->window)); */
progress_dialog_set_value(progress, 0.0);
@ -1100,7 +1100,8 @@ static gint inc_dialog_delete_cb(GtkWidget *widget, GdkEventAny *event,
static gint inc_spool(void)
{
gchar *mbox, *logname;
gchar *mbox;
const gchar *logname;
gint msgs;
logname = g_get_user_name();

View file

@ -77,7 +77,7 @@ static void cancel_clicked (GtkWidget *widget,
static gint delete_event (GtkWidget *widget,
GdkEventAny *event,
gpointer data);
static void key_pressed (GtkWidget *widget,
static gboolean key_pressed (GtkWidget *widget,
GdkEventKey *event,
gpointer data);
static void entry_activated (GtkEditable *editable);
@ -166,14 +166,14 @@ static void input_dialog_create(void)
dialog = gtk_dialog_new();
gtk_window_set_policy(GTK_WINDOW(dialog), FALSE, FALSE, FALSE);
gtk_widget_set_usize(dialog, INPUT_DIALOG_WIDTH, -1);
gtk_widget_set_size_request(dialog, INPUT_DIALOG_WIDTH, -1);
gtk_container_set_border_width
(GTK_CONTAINER(GTK_DIALOG(dialog)->action_area), 5);
gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
gtk_signal_connect(GTK_OBJECT(dialog), "delete_event",
GTK_SIGNAL_FUNC(delete_event), NULL);
gtk_signal_connect(GTK_OBJECT(dialog), "key_press_event",
GTK_SIGNAL_FUNC(key_pressed), NULL);
g_signal_connect(G_OBJECT(dialog), "delete_event",
G_CALLBACK(delete_event), NULL);
g_signal_connect(G_OBJECT(dialog), "key_press_event",
G_CALLBACK(key_pressed), NULL);
MANAGE_WINDOW_SIGNALS_CONNECT(dialog);
gtk_widget_realize(dialog);
@ -191,13 +191,13 @@ static void input_dialog_create(void)
entry = gtk_entry_new();
gtk_box_pack_start(GTK_BOX(vbox), entry, FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(entry), "activate",
GTK_SIGNAL_FUNC(entry_activated), NULL);
g_signal_connect(G_OBJECT(entry), "activate",
G_CALLBACK(entry_activated), NULL);
combo = gtk_combo_new();
gtk_box_pack_start(GTK_BOX(vbox), combo, FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(GTK_COMBO(combo)->entry), "activate",
GTK_SIGNAL_FUNC(combo_activated), NULL);
g_signal_connect(G_OBJECT(GTK_COMBO(combo)->entry), "activate",
G_CALLBACK(combo_activated), NULL);
gtkut_button_set_create(&confirm_area,
&ok_button, _("OK"),
@ -207,10 +207,10 @@ static void input_dialog_create(void)
confirm_area);
gtk_widget_grab_default(ok_button);
gtk_signal_connect(GTK_OBJECT(ok_button), "clicked",
GTK_SIGNAL_FUNC(ok_clicked), NULL);
gtk_signal_connect(GTK_OBJECT(cancel_button), "clicked",
GTK_SIGNAL_FUNC(cancel_clicked), NULL);
g_signal_connect(G_OBJECT(ok_button), "clicked",
G_CALLBACK(ok_clicked), NULL);
g_signal_connect(G_OBJECT(cancel_button), "clicked",
G_CALLBACK(cancel_clicked), NULL);
gtk_widget_show_all(GTK_DIALOG(dialog)->vbox);
@ -275,8 +275,8 @@ static void input_dialog_set(const gchar *title, const gchar *message,
gtk_label_set_text(GTK_LABEL(msg_label), message);
if (default_string && *default_string) {
gtk_entry_set_text(GTK_ENTRY(entry_), default_string);
gtk_entry_set_position(GTK_ENTRY(entry_), 0);
gtk_entry_select_region(GTK_ENTRY(entry_), 0, -1);
gtk_editable_set_position(GTK_EDITABLE(entry_), 0);
gtk_editable_select_region(GTK_EDITABLE(entry_), 0, -1);
} else
gtk_entry_set_text(GTK_ENTRY(entry_), "");
@ -304,12 +304,14 @@ static gint delete_event(GtkWidget *widget, GdkEventAny *event, gpointer data)
return TRUE;
}
static void key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
if (event && event->keyval == GDK_Escape) {
ack = FALSE;
fin = TRUE;
}
return FALSE;
}
static void entry_activated(GtkEditable *editable)

View file

@ -1719,7 +1719,7 @@ gboolean jpilot_validate( JPilotFile *pilotFile ) {
* no home. Filename should be <code>g_free()</code> when done.
*/
gchar *jpilot_find_pilotdb( void ) {
gchar *homedir;
const gchar *homedir;
gchar str[ WORK_BUFLEN ];
gint len;
FILE *fp;

View file

@ -27,7 +27,7 @@
#include <gtk/gtkwindow.h>
#include <gtk/gtksignal.h>
#include <gtk/gtkscrolledwindow.h>
#include <gtk/gtktext.h>
#include <gtk/gtktextview.h>
#include <gtk/gtkstyle.h>
#include "intl.h"
@ -40,7 +40,7 @@
static void hide_cb (GtkWidget *widget,
LogWindow *logwin);
static void key_pressed (GtkWidget *widget,
static gboolean key_pressed (GtkWidget *widget,
GdkEventKey *event,
LogWindow *logwin);
static gboolean log_window_append (gpointer source,
@ -53,6 +53,8 @@ LogWindow *log_window_create(void)
GtkWidget *window;
GtkWidget *scrolledwin;
GtkWidget *text;
GtkTextBuffer *buffer;
GtkTextIter iter;
debug_print("Creating log window...\n");
logwin = g_new0(LogWindow, 1);
@ -61,13 +63,13 @@ LogWindow *log_window_create(void)
gtk_window_set_title(GTK_WINDOW(window), _("Protocol log"));
gtk_window_set_wmclass(GTK_WINDOW(window), "log_window", "Sylpheed");
gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, FALSE);
gtk_widget_set_usize(window, 520, 400);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(gtk_widget_hide_on_delete), NULL);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(key_pressed), logwin);
gtk_signal_connect(GTK_OBJECT(window), "hide",
GTK_SIGNAL_FUNC(hide_cb), logwin);
gtk_widget_set_size_request(window, 520, 400);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(gtk_widget_hide_on_delete), NULL);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(key_pressed), logwin);
g_signal_connect(G_OBJECT(window), "hide",
G_CALLBACK(hide_cb), logwin);
gtk_widget_realize(window);
scrolledwin = gtk_scrolled_window_new(NULL, NULL);
@ -76,13 +78,14 @@ LogWindow *log_window_create(void)
gtk_container_add(GTK_CONTAINER(window), scrolledwin);
gtk_widget_show(scrolledwin);
text = gtk_text_new(gtk_scrolled_window_get_hadjustment
(GTK_SCROLLED_WINDOW(scrolledwin)),
gtk_scrolled_window_get_vadjustment
(GTK_SCROLLED_WINDOW(scrolledwin)));
text = gtk_text_view_new();
gtk_text_view_set_editable(GTK_TEXT_VIEW(text), FALSE);
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text), GTK_WRAP_WORD);
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
gtk_text_buffer_get_start_iter(buffer, &iter);
gtk_text_buffer_create_mark(buffer, "end", &iter, FALSE);
gtk_container_add(GTK_CONTAINER(scrolledwin), text);
gtk_widget_show(text);
gtk_text_freeze(GTK_TEXT(text));
logwin->window = window;
logwin->scrolledwin = scrolledwin;
@ -94,6 +97,7 @@ LogWindow *log_window_create(void)
void log_window_init(LogWindow *logwin)
{
GtkTextBuffer *buffer;
GdkColormap *colormap;
GdkColor color[3] =
{{0, 0, 0xafff, 0}, {0, 0xefff, 0, 0}, {0, 0xefff, 0, 0}};
@ -120,17 +124,27 @@ void log_window_init(LogWindow *logwin)
break;
}
}
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(logwin->text));
gtk_text_buffer_create_tag(buffer, "message",
"foreground-gdk", &logwin->msg_color,
NULL);
gtk_text_buffer_create_tag(buffer, "warn",
"foreground-gdk", &logwin->warn_color,
NULL);
gtk_text_buffer_create_tag(buffer, "error",
"foreground-gdk", &logwin->error_color,
NULL);
}
void log_window_show(LogWindow *logwin)
{
GtkText *text = GTK_TEXT(logwin->text);
GtkTextView *text = GTK_TEXT_VIEW(logwin->text);
GtkTextBuffer *buffer = gtk_text_view_get_buffer(text);
GtkTextMark *mark;
gtk_widget_hide(logwin->window);
gtk_text_thaw(text);
text->vadj->value = text->vadj->upper - text->vadj->page_size;
gtk_signal_emit_by_name(GTK_OBJECT(text->vadj), "value_changed");
mark = gtk_text_buffer_get_mark(buffer, "end");
gtk_text_view_scroll_mark_onscreen(text, mark);
gtk_widget_show(logwin->window);
}
@ -139,9 +153,12 @@ static gboolean log_window_append(gpointer source, gpointer data)
{
LogText *logtext = (LogText *) source;
LogWindow *logwindow = (LogWindow *) data;
GtkText *text;
GtkTextView *text;
GtkTextBuffer *buffer;
GtkTextIter iter;
GdkColor *color = NULL;
gchar *head = NULL;
const gchar *tag;
g_return_val_if_fail(logtext != NULL, TRUE);
g_return_val_if_fail(logtext->text != NULL, TRUE);
@ -150,27 +167,40 @@ static gboolean log_window_append(gpointer source, gpointer data)
if (prefs_common.cliplog && !prefs_common.loglength)
return FALSE;
text = GTK_TEXT(logwindow->text);
text = GTK_TEXT_VIEW(logwindow->text);
buffer = gtk_text_view_get_buffer(text);
gtk_text_buffer_get_iter_at_offset(buffer, &iter, -1);
switch (logtext->type) {
case LOG_MSG:
color = &logwindow->msg_color;
tag = "message";
head = "* ";
break;
case LOG_WARN:
color = &logwindow->warn_color;
tag = "warn";
head = "** ";
break;
case LOG_ERROR:
color = &logwindow->error_color;
tag = "error";
head = "*** ";
break;
default:
tag = NULL;
break;
}
if (head)
gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, head, -1,
tag, NULL);
gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, logtext->text, -1,
tag, NULL);
gtk_text_buffer_get_start_iter(buffer, &iter);
gtk_text_buffer_place_cursor(buffer, &iter);
if (head) gtk_text_insert(text, NULL, color, NULL, head, -1);
gtk_text_insert(text, NULL, color, NULL, logtext->text, -1);
if (prefs_common.cliplog)
log_window_clear (GTK_WIDGET (text));
@ -179,47 +209,36 @@ static gboolean log_window_append(gpointer source, gpointer data)
static void hide_cb(GtkWidget *widget, LogWindow *logwin)
{
if (GTK_TEXT(logwin->text)->freeze_count == 0)
gtk_text_freeze(GTK_TEXT(logwin->text));
}
static void key_pressed(GtkWidget *widget, GdkEventKey *event,
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event,
LogWindow *logwin)
{
if (event && event->keyval == GDK_Escape)
gtk_widget_hide(logwin->window);
return FALSE;
}
void log_window_clear(GtkWidget *textw)
{
guint length;
guint point;
gboolean was_frozen = FALSE;
GtkText *text = GTK_TEXT(textw);
GtkTextView *textview = GTK_TEXT_VIEW(textw);
GtkTextBuffer *textbuf = gtk_text_view_get_buffer(textview);
GtkTextIter start_iter, end_iter;
length = gtk_text_get_length (text);
length = gtk_text_buffer_get_char_count (textbuf);
debug_print("Log window length: %u\n", length);
if (length > prefs_common.loglength) {
/* find the end of the first line after the cut off
* point */
point = length - prefs_common.loglength;
while (point < length && GTK_TEXT_INDEX(text, point) != '\n')
point++;
/* erase the text */
if (text->freeze_count) {
was_frozen = TRUE;
gtk_text_thaw(text);
}
gtk_text_set_point (text, 0);
gtk_text_freeze(text);
if (!gtk_text_forward_delete (text, point + 1))
debug_print("Error clearing log\n");
gtk_text_thaw(text);
gtk_text_set_point(text,
gtk_text_get_length (GTK_TEXT (text)));
if (was_frozen)
gtk_text_freeze(text);
gtk_text_buffer_get_iter_at_offset(textbuf, &end_iter, point);
if (!gtk_text_iter_forward_to_line_end(&end_iter))
return;
gtk_text_buffer_get_start_iter(textbuf, &start_iter);
gtk_text_buffer_delete(textbuf, &start_iter, &end_iter);
}
}

View file

@ -230,7 +230,7 @@ int main(int argc, char *argv[])
gtk_rc_parse("./gtkrc");
userrc = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S, MENU_RC, NULL);
gtk_item_factory_parse_rc(userrc);
gtk_accel_map_load (userrc);
g_free(userrc);
CHDIR_RETURN_VAL_IF_FAIL(get_home_dir(), 1);
@ -649,7 +649,7 @@ void app_will_exit(GtkWidget *widget, gpointer data)
addressbook_export_to_file();
filename = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S, MENU_RC, NULL);
gtk_item_factory_dump_rc(filename, NULL, TRUE);
gtk_accel_map_save (filename);
g_free(filename);
/* delete temporary files */

View file

@ -103,11 +103,11 @@ static void main_window_set_widgets (MainWindow *mainwin,
SeparateType type);
#if 0
static void toolbar_account_button_pressed (GtkWidget *widget,
static gboolean toolbar_account_button_pressed (GtkWidget *widget,
GdkEventButton *event,
gpointer data);
#endif
static void ac_label_button_pressed (GtkWidget *widget,
static gboolean ac_label_button_pressed (GtkWidget *widget,
GdkEventButton *event,
gpointer data);
static void ac_menu_popup_closed (GtkMenuShell *menu_shell,
@ -766,14 +766,14 @@ MainWindow *main_window_create(SeparateType type)
gtk_window_set_geometry_hints(GTK_WINDOW(window), NULL, &geometry,
GDK_HINT_MIN_SIZE);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(main_window_close_cb), mainwin);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(main_window_close_cb), mainwin);
MANAGE_WINDOW_SIGNALS_CONNECT(window);
gtk_signal_connect(GTK_OBJECT(window), "focus_in_event",
GTK_SIGNAL_FUNC(mainwindow_focus_in_event),
mainwin);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(mainwindow_key_pressed), mainwin);
g_signal_connect(G_OBJECT(window), "focus_in_event",
G_CALLBACK(mainwindow_focus_in_event),
mainwin);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(mainwindow_key_pressed), mainwin);
gtk_widget_realize(window);
gtk_widget_add_events(window, GDK_KEY_PRESS_MASK|GDK_KEY_RELEASE_MASK);
@ -821,7 +821,7 @@ MainWindow *main_window_create(SeparateType type)
gtk_box_pack_start(GTK_BOX(hbox_stat), statusbar, TRUE, TRUE, 0);
progressbar = gtk_progress_bar_new();
gtk_widget_set_usize(progressbar, 120, 1);
gtk_widget_set_size_request(progressbar, 120, 1);
gtk_box_pack_start(GTK_BOX(hbox_stat), progressbar, FALSE, FALSE, 0);
online_pixmap = stock_pixmap_widget(hbox_stat, STOCK_PIXMAP_WORK_ONLINE);
@ -836,11 +836,11 @@ MainWindow *main_window_create(SeparateType type)
offline_switch, _("Go online"), NULL);
gtk_container_add (GTK_CONTAINER(online_switch), online_pixmap);
gtk_button_set_relief (GTK_BUTTON(online_switch), GTK_RELIEF_NONE);
gtk_signal_connect (GTK_OBJECT(online_switch), "clicked", (GtkSignalFunc)online_switch_clicked, mainwin);
g_signal_connect (G_OBJECT(online_switch), "clicked", G_CALLBACK(online_switch_clicked), mainwin);
gtk_box_pack_start (GTK_BOX(hbox_stat), online_switch, FALSE, FALSE, 0);
gtk_container_add (GTK_CONTAINER(offline_switch), offline_pixmap);
gtk_button_set_relief (GTK_BUTTON(offline_switch), GTK_RELIEF_NONE);
gtk_signal_connect (GTK_OBJECT(offline_switch), "clicked", (GtkSignalFunc)online_switch_clicked, mainwin);
g_signal_connect (G_OBJECT(offline_switch), "clicked", G_CALLBACK(online_switch_clicked), mainwin);
gtk_box_pack_start (GTK_BOX(hbox_stat), offline_switch, FALSE, FALSE, 0);
statuslabel = gtk_label_new("");
@ -852,10 +852,10 @@ MainWindow *main_window_create(SeparateType type)
ac_button, _("Select account"), NULL);
gtk_button_set_relief(GTK_BUTTON(ac_button), GTK_RELIEF_NONE);
GTK_WIDGET_UNSET_FLAGS(ac_button, GTK_CAN_FOCUS);
gtk_widget_set_usize(ac_button, -1, 1);
gtk_widget_set_size_request(ac_button, -1, 1);
gtk_box_pack_end(GTK_BOX(hbox_stat), ac_button, FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(ac_button), "button_press_event",
GTK_SIGNAL_FUNC(ac_label_button_pressed), mainwin);
g_signal_connect(G_OBJECT(ac_button), "button_press_event",
G_CALLBACK(ac_label_button_pressed), mainwin);
ac_label = gtk_label_new("");
gtk_container_add(GTK_CONTAINER(ac_button), ac_label);
@ -937,9 +937,9 @@ MainWindow *main_window_create(SeparateType type)
main_window_set_widgets(mainwin, type);
gtk_signal_connect(GTK_OBJECT(window), "size_allocate",
GTK_SIGNAL_FUNC(main_window_size_allocate_cb),
mainwin);
g_signal_connect(G_OBJECT(window), "size_allocate",
G_CALLBACK(main_window_size_allocate_cb),
mainwin);
/* set menu items */
menuitem = gtk_item_factory_get_item
@ -982,8 +982,8 @@ MainWindow *main_window_create(SeparateType type)
/* set account selection menu */
ac_menu = gtk_item_factory_get_widget
(ifactory, "/Configuration/Change current account");
gtk_signal_connect(GTK_OBJECT(ac_menu), "selection_done",
GTK_SIGNAL_FUNC(ac_menu_popup_closed), mainwin);
g_signal_connect(G_OBJECT(ac_menu), "selection_done",
G_CALLBACK(ac_menu_popup_closed), mainwin);
mainwin->ac_menu = ac_menu;
toolbar_main_set_sensitive(mainwin);
@ -1175,10 +1175,11 @@ void main_window_set_account_menu(GList *account_list)
(ac_prefs->account_name
? ac_prefs->account_name : _("Untitled"));
gtk_widget_show(menuitem);
gtk_menu_append(GTK_MENU(mainwin->ac_menu), menuitem);
gtk_signal_connect(GTK_OBJECT(menuitem), "activate",
GTK_SIGNAL_FUNC(account_menu_cb),
ac_prefs);
gtk_menu_shell_append(GTK_MENU_SHELL(mainwin->ac_menu),
menuitem);
g_signal_connect(G_OBJECT(menuitem), "activate",
G_CALLBACK(account_menu_cb),
ac_prefs);
}
}
}
@ -1825,12 +1826,12 @@ static void main_window_set_widgets(MainWindow *mainwin, SeparateType type)
"folder_view", "Sylpheed");
gtk_window_set_policy(GTK_WINDOW(folderwin),
TRUE, TRUE, FALSE);
gtk_widget_set_uposition(folderwin, prefs_common.folderwin_x,
prefs_common.folderwin_y);
gtk_window_move(GTK_WINDOW(folderwin), prefs_common.folderwin_x,
prefs_common.folderwin_y);
gtk_container_set_border_width(GTK_CONTAINER(folderwin),
BORDER_WIDTH);
gtk_signal_connect(GTK_OBJECT(folderwin), "delete_event",
GTK_SIGNAL_FUNC(folder_window_close_cb),
g_signal_connect(G_OBJECT(folderwin), "delete_event",
G_CALLBACK(folder_window_close_cb),
mainwin);
gtk_container_add(GTK_CONTAINER(folderwin),
GTK_WIDGET_PTR(mainwin->folderview));
@ -1846,13 +1847,13 @@ static void main_window_set_widgets(MainWindow *mainwin, SeparateType type)
"message_view", "Sylpheed");
gtk_window_set_policy(GTK_WINDOW(messagewin),
TRUE, TRUE, FALSE);
gtk_widget_set_uposition(messagewin, prefs_common.main_msgwin_x,
prefs_common.main_msgwin_y);
gtk_window_move(GTK_WINDOW(messagewin), prefs_common.main_msgwin_x,
prefs_common.main_msgwin_y);
gtk_container_set_border_width(GTK_CONTAINER(messagewin),
BORDER_WIDTH);
gtk_signal_connect(GTK_OBJECT(messagewin), "delete_event",
GTK_SIGNAL_FUNC(message_window_close_cb),
mainwin);
g_signal_connect(G_OBJECT(messagewin), "delete_event",
G_CALLBACK(message_window_close_cb),
mainwin);
gtk_container_add(GTK_CONTAINER(messagewin),
GTK_WIDGET_PTR(mainwin->messageview));
gtk_widget_realize(messagewin);
@ -1860,15 +1861,15 @@ static void main_window_set_widgets(MainWindow *mainwin, SeparateType type)
gtk_widget_show(messagewin);
}
gtk_widget_set_usize(GTK_WIDGET_PTR(mainwin->folderview),
prefs_common.folderview_width,
prefs_common.folderview_height);
gtk_widget_set_usize(GTK_WIDGET_PTR(mainwin->summaryview),
prefs_common.summaryview_width,
prefs_common.summaryview_height);
gtk_widget_set_usize(GTK_WIDGET_PTR(mainwin->messageview),
prefs_common.msgview_width,
prefs_common.msgview_height);
gtk_widget_set_size_request(GTK_WIDGET_PTR(mainwin->folderview),
prefs_common.folderview_width,
prefs_common.folderview_height);
gtk_widget_set_size_request(GTK_WIDGET_PTR(mainwin->summaryview),
prefs_common.summaryview_width,
prefs_common.summaryview_height);
gtk_widget_set_size_request(GTK_WIDGET_PTR(mainwin->messageview),
prefs_common.msgview_width,
prefs_common.msgview_height);
switch (type) {
case SEPARATE_NONE:
@ -1955,9 +1956,9 @@ static void main_window_set_widgets(MainWindow *mainwin, SeparateType type)
break;
}
gtk_widget_set_uposition(mainwin->window,
prefs_common.mainwin_x,
prefs_common.mainwin_y);
gtk_window_move(GTK_WINDOW(mainwin->window),
prefs_common.mainwin_x,
prefs_common.mainwin_y);
gtk_widget_queue_resize(vbox_body);
gtk_widget_queue_resize(mainwin->vbox);
@ -2001,15 +2002,15 @@ static void main_window_set_widgets(MainWindow *mainwin, SeparateType type)
((type & SEPARATE_MESSAGE) != 0));
if (folderwin) {
gtk_signal_connect
(GTK_OBJECT(folderwin), "size_allocate",
GTK_SIGNAL_FUNC(folder_window_size_allocate_cb),
g_signal_connect
(G_OBJECT(folderwin), "size_allocate",
G_CALLBACK(folder_window_size_allocate_cb),
mainwin);
}
if (messagewin) {
gtk_signal_connect
(GTK_OBJECT(messagewin), "size_allocate",
GTK_SIGNAL_FUNC(message_window_size_allocate_cb),
g_signal_connect
(G_OBJECT(messagewin), "size_allocate",
G_CALLBACK(message_window_size_allocate_cb),
mainwin);
}
@ -2035,39 +2036,43 @@ void main_window_destroy_all(void)
}
#if 0
static void toolbar_account_button_pressed(GtkWidget *widget,
GdkEventButton *event,
gpointer data)
static gboolean toolbar_account_button_pressed(GtkWidget *widget,
GdkEventButton *event,
gpointer data)
{
MainWindow *mainwin = (MainWindow *)data;
if (!event) return;
if (event->button != 3) return;
if (!event) return FALSE;
if (event->button != 3) return FALSE;
gtk_button_set_relief(GTK_BUTTON(widget), GTK_RELIEF_NORMAL);
gtk_object_set_data(GTK_OBJECT(mainwin->ac_menu), "menu_button",
widget);
g_object_set_data(G_OBJECT(mainwin->ac_menu), "menu_button",
widget);
gtk_menu_popup(GTK_MENU(mainwin->ac_menu), NULL, NULL,
menu_button_position, widget,
event->button, event->time);
return FALSE;
}
#endif
static void ac_label_button_pressed(GtkWidget *widget, GdkEventButton *event,
gpointer data)
static gboolean ac_label_button_pressed(GtkWidget *widget, GdkEventButton *event,
gpointer data)
{
MainWindow *mainwin = (MainWindow *)data;
if (!event) return;
if (!event) return FALSE;
gtk_button_set_relief(GTK_BUTTON(widget), GTK_RELIEF_NORMAL);
gtk_object_set_data(GTK_OBJECT(mainwin->ac_menu), "menu_button",
widget);
g_object_set_data(G_OBJECT(mainwin->ac_menu), "menu_button",
widget);
gtk_menu_popup(GTK_MENU(mainwin->ac_menu), NULL, NULL,
menu_button_position, widget,
event->button, event->time);
return TRUE;
}
static void ac_menu_popup_closed(GtkMenuShell *menu_shell, gpointer data)
@ -2075,10 +2080,10 @@ static void ac_menu_popup_closed(GtkMenuShell *menu_shell, gpointer data)
MainWindow *mainwin = (MainWindow *)data;
GtkWidget *button;
button = gtk_object_get_data(GTK_OBJECT(menu_shell), "menu_button");
button = g_object_get_data(G_OBJECT(menu_shell), "menu_button");
if (!button) return;
gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
gtk_object_remove_data(GTK_OBJECT(mainwin->ac_menu), "menu_button");
g_object_set_data(G_OBJECT(mainwin->ac_menu), "menu_button", NULL);
manage_window_focus_in(mainwin->window, NULL, NULL);
}

View file

@ -170,6 +170,6 @@ gchar *matching_build_command (const gchar *cmd,
void prefs_matcher_read_config (void);
void prefs_matcher_write_config (void);
void *matcher_parser_scan_string (gchar *str);
void *matcher_parser_scan_string (const gchar *str);
#endif

View file

@ -31,10 +31,10 @@ extern int matcher_parserlineno;
void matcher_parser_start_parsing (FILE *f);
int matcher_parserparse (void);
MatcherList *matcher_parser_get_cond (gchar *str);
MatcherProp *matcher_parser_get_prop (gchar *str);
FilteringProp *matcher_parser_get_filtering (gchar *str);
ScoringProp *matcher_parser_get_scoring (gchar *str);
GSList *matcher_parser_get_action_list(gchar *str);
MatcherList *matcher_parser_get_cond (const gchar *str);
MatcherProp *matcher_parser_get_prop (const gchar *str);
FilteringProp *matcher_parser_get_filtering (const gchar *str);
ScoringProp *matcher_parser_get_scoring (const gchar *str);
GSList *matcher_parser_get_action_list(const gchar *str);
#endif

View file

@ -77,7 +77,7 @@ void matcher_parser_start_parsing(FILE *f)
matcher_parserparse();
}
FilteringProp *matcher_parser_get_filtering(gchar *str)
FilteringProp *matcher_parser_get_filtering(const gchar *str)
{
void *bufstate;
@ -96,7 +96,7 @@ FilteringProp *matcher_parser_get_filtering(gchar *str)
return filtering;
}
ScoringProp *matcher_parser_get_scoring(gchar *str)
ScoringProp *matcher_parser_get_scoring(const gchar *str)
{
void *bufstate;
@ -117,7 +117,7 @@ ScoringProp *matcher_parser_get_scoring(gchar *str)
static gboolean check_quote_symetry(gchar *str)
{
gchar *walk;
const gchar *walk;
int ret = 0;
if (str == NULL)
@ -134,7 +134,7 @@ static gboolean check_quote_symetry(gchar *str)
return !(ret % 2);
}
MatcherList *matcher_parser_get_cond(gchar *str)
MatcherList *matcher_parser_get_cond(const gchar *str)
{
void *bufstate;
@ -156,7 +156,7 @@ MatcherList *matcher_parser_get_cond(gchar *str)
return cond;
}
GSList *matcher_parser_get_action_list(gchar *str)
GSList *matcher_parser_get_action_list(const gchar *str)
{
void *bufstate;
@ -178,7 +178,7 @@ GSList *matcher_parser_get_action_list(gchar *str)
return action_list;
}
MatcherProp *matcher_parser_get_prop(gchar *str)
MatcherProp *matcher_parser_get_prop(const gchar *str)
{
MatcherList *list;
MatcherProp *prop;

View file

@ -29,6 +29,10 @@ typedef enum {
LOCK_FLOCK
} LockType;
#warning FIXME_GTK2
/* file name should be locale encode. */
gint proc_mbox (FolderItem *dest,
const gchar *mbox);
gint lock_mbox (const gchar *base,

View file

@ -61,7 +61,7 @@ static void message_search_create(MessageView *summaryview);
static void message_search_execute(GtkButton *button, gpointer data);
static void message_search_clear(GtkButton *button, gpointer data);
static void body_activated(void);
static void key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data);
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data);
void message_search(MessageView *messageview)
{
@ -83,16 +83,16 @@ static void message_search_create(MessageView *messageview)
GtkWidget *checkbtn_hbox;
GtkWidget *confirm_area;
window = gtk_window_new (GTK_WINDOW_DIALOG);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window),
_("Find in current message"));
gtk_widget_set_usize (window, 450, -1);
gtk_widget_set_size_request (window, 450, -1);
gtk_window_set_policy(GTK_WINDOW(window), FALSE, TRUE, TRUE);
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(gtk_widget_hide_on_delete), NULL);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(key_pressed), NULL);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(gtk_widget_hide_on_delete), NULL);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(key_pressed), NULL);
MANAGE_WINDOW_SIGNALS_CONNECT(window);
vbox1 = gtk_vbox_new (FALSE, 0);
@ -110,18 +110,20 @@ static void message_search_create(MessageView *messageview)
body_entry = gtk_entry_new ();
gtk_widget_show (body_entry);
gtk_box_pack_start (GTK_BOX (hbox1), body_entry, TRUE, TRUE, 0);
gtk_signal_connect(GTK_OBJECT(body_entry), "activate",
GTK_SIGNAL_FUNC(body_activated), messageview);
g_signal_connect(G_OBJECT(body_entry), "activate",
G_CALLBACK(body_activated), messageview);
checkbtn_hbox = gtk_hbox_new (FALSE, 8);
gtk_widget_show (checkbtn_hbox);
gtk_box_pack_start (GTK_BOX (vbox1), checkbtn_hbox, TRUE, TRUE, 0);
gtk_container_set_border_width (GTK_CONTAINER (checkbtn_hbox), 8);
case_checkbtn = gtk_check_button_new_with_label (_("Case sensitive"));
#warning FIXME_GTK2
case_checkbtn = gtk_check_button_new_with_label (_("Case sensitive (Broken)"));
gtk_widget_show (case_checkbtn);
gtk_box_pack_start (GTK_BOX (checkbtn_hbox), case_checkbtn,
FALSE, FALSE, 0);
gtk_widget_set_sensitive(case_checkbtn, FALSE);
backward_checkbtn =
gtk_check_button_new_with_label (_("Backward search"));
@ -137,15 +139,17 @@ static void message_search_create(MessageView *messageview)
gtk_box_pack_start (GTK_BOX (vbox1), confirm_area, FALSE, FALSE, 0);
gtk_widget_grab_default(search_btn);
gtk_signal_connect(GTK_OBJECT(search_btn), "clicked",
GTK_SIGNAL_FUNC(message_search_execute),
messageview);
gtk_signal_connect(GTK_OBJECT(clear_btn), "clicked",
GTK_SIGNAL_FUNC(message_search_clear),
messageview);
gtk_signal_connect_object(GTK_OBJECT(close_btn), "clicked",
GTK_SIGNAL_FUNC(gtk_widget_hide),
GTK_OBJECT(window));
g_signal_connect(G_OBJECT(search_btn), "clicked",
G_CALLBACK(message_search_execute),
messageview);
g_signal_connect(G_OBJECT(clear_btn), "clicked",
G_CALLBACK(message_search_clear),
messageview);
g_signal_connect_closure
(G_OBJECT(close_btn), "clicked",
g_cclosure_new_swap(G_CALLBACK(gtk_widget_hide),
window, NULL),
FALSE);
}
static void message_search_execute(GtkButton *button, gpointer data)
@ -154,7 +158,7 @@ static void message_search_execute(GtkButton *button, gpointer data)
gboolean case_sens;
gboolean backward;
gboolean all_searched = FALSE;
gchar *body_str;
const gchar *body_str;
body_str = gtk_entry_get_text(GTK_ENTRY(body_entry));
if (*body_str == '\0') return;
@ -215,8 +219,9 @@ static void body_activated(void)
gtk_button_clicked(GTK_BUTTON(search_btn));
}
static void key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
if (event && event->keyval == GDK_Escape)
gtk_widget_hide(window);
return FALSE;
}

View file

@ -380,18 +380,18 @@ MessageView *messageview_create_with_new_window(MainWindow *mainwin)
gtk_window_set_title(GTK_WINDOW(window), _("Sylpheed - Message View"));
gtk_window_set_wmclass(GTK_WINDOW(window), "message_view", "Sylpheed");
gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, FALSE);
gtk_widget_set_usize(window, prefs_common.msgwin_width,
prefs_common.msgwin_height);
gtk_widget_set_size_request(window, prefs_common.msgwin_width,
prefs_common.msgwin_height);
msgview = messageview_create(mainwin);
gtk_signal_connect(GTK_OBJECT(window), "size_allocate",
GTK_SIGNAL_FUNC(messageview_size_allocate_cb),
msgview);
gtk_signal_connect(GTK_OBJECT(window), "destroy",
GTK_SIGNAL_FUNC(messageview_destroy_cb), msgview);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(key_pressed), msgview);
g_signal_connect(G_OBJECT(window), "size_allocate",
G_CALLBACK(messageview_size_allocate_cb),
msgview);
g_signal_connect(G_OBJECT(window), "destroy",
G_CALLBACK(messageview_destroy_cb), msgview);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(key_pressed), msgview);
messageview_add_toolbar(msgview, window);
@ -838,8 +838,14 @@ void messageview_copy_clipboard(MessageView *messageview)
TextView *text;
text = messageview_get_current_textview(messageview);
if (text)
gtk_editable_copy_clipboard(GTK_EDITABLE(text->text));
if (text) {
GtkTextView *textview = GTK_TEXT_VIEW(text->text);
GtkTextBuffer *buffer = gtk_text_view_get_buffer(textview);
GtkClipboard *clipboard
= gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
gtk_text_buffer_copy_clipboard(buffer, clipboard);
}
}
void messageview_select_all(MessageView *messageview)
@ -1046,29 +1052,35 @@ gchar *messageview_get_selection(MessageView *msgview)
{
TextView *textview;
gchar *text = NULL;
GtkEditable *edit = NULL;
GtkTextView *edit = NULL;
GtkTextBuffer *textbuf;
gint body_pos = 0;
g_return_val_if_fail(msgview != NULL, NULL);
textview = messageview_get_current_textview(msgview);
if (textview) {
edit = GTK_EDITABLE(textview->text);
edit = GTK_TEXT_VIEW(textview->text);
body_pos = textview->body_pos;
} else {
edit = GTK_EDITABLE(msgview->mimeview->textview->text);
edit = GTK_TEXT_VIEW(msgview->mimeview->textview->text);
body_pos = msgview->mimeview->textview->body_pos;
}
g_return_val_if_fail(edit != NULL, NULL);
if (edit->has_selection)
text = gtkut_editable_get_selection(edit);
else if (msgview->filtered)
text = gtk_editable_get_chars (edit, body_pos, -1);
else
textbuf = gtk_text_view_get_buffer(edit);
if (gtk_text_buffer_get_selection_bounds(textbuf, NULL, NULL))
return gtkut_text_view_get_selection(edit);
else if (msgview->filtered) {
GtkTextIter start_iter, end_iter;
gtk_text_buffer_get_iter_at_offset(textbuf, &start_iter, body_pos);
gtk_text_buffer_get_end_iter(textbuf, &end_iter);
gtk_text_buffer_get_text(textbuf, &start_iter, &end_iter, FALSE);
} else
text = NULL;
return text;
}

View file

@ -42,6 +42,7 @@
#include "procmsg.h"
#include "procheader.h"
#include "utils.h"
#include "codeconv.h"
static void mh_folder_init(Folder * folder,
const gchar * name, const gchar * path);
@ -81,6 +82,8 @@ static gchar *mh_get_new_msg_filename(FolderItem * dest);
static MsgInfo *mh_parse_msg(const gchar * file, FolderItem * item);
static void mh_remove_missing_folder_items (Folder *folder);
static void mh_scan_tree_recursive(FolderItem * item);
static gchar *mh_filename_from_utf8 (const gchar *path);
static gchar *mh_filename_to_utf8 (const gchar *path);
static gboolean mh_rename_folder_func(GNode * node, gpointer data);
static gchar *mh_item_get_path(Folder *folder, FolderItem *item);
@ -243,7 +246,7 @@ gchar *mh_fetch_msg(Folder *folder, FolderItem *item, gint num)
path = folder_item_get_path(item);
file = g_strconcat(path, G_DIR_SEPARATOR_S, itos(num), NULL);
g_free(path);
if (!is_file_exist(file)) {
g_free(file);
return NULL;
@ -559,7 +562,7 @@ gchar *mh_item_get_path(Folder *folder, FolderItem *item)
FolderItem *mh_create_folder(Folder *folder, FolderItem *parent,
const gchar *name)
{
gchar *path;
gchar *path, *real_name;
gchar *fullpath;
FolderItem *new_item;
gchar *mh_sequences_filename;
@ -574,7 +577,9 @@ FolderItem *mh_create_folder(Folder *folder, FolderItem *parent,
if (make_dir_hier(path) != 0)
return NULL;
fullpath = g_strconcat(path, G_DIR_SEPARATOR_S, name, NULL);
real_name = mh_filename_from_utf8(name);
fullpath = g_strconcat(path, G_DIR_SEPARATOR_S, real_name, NULL);
g_free(real_name);
g_free(path);
if (make_dir(fullpath) < 0) {
@ -608,9 +613,10 @@ FolderItem *mh_create_folder(Folder *folder, FolderItem *parent,
gint mh_rename_folder(Folder *folder, FolderItem *item, const gchar *name)
{
gchar *real_name;
gchar *oldpath;
gchar *dirname;
gchar *newpath;
gchar *newpath, *utf8newpath;
gchar *paths[2];
g_return_val_if_fail(folder != NULL, -1);
@ -623,8 +629,9 @@ gint mh_rename_folder(Folder *folder, FolderItem *item, const gchar *name)
make_dir_hier(oldpath);
dirname = g_dirname(oldpath);
newpath = g_strconcat(dirname, G_DIR_SEPARATOR_S, name, NULL);
g_free(dirname);
real_name = mh_filename_from_utf8(name);
newpath = g_strconcat(dirname, G_DIR_SEPARATOR_S, real_name, NULL);
g_free(real_name);
if (rename(oldpath, newpath) < 0) {
FILE_OP_ERROR(oldpath, "rename");
@ -638,16 +645,17 @@ gint mh_rename_folder(Folder *folder, FolderItem *item, const gchar *name)
if (strchr(item->path, G_DIR_SEPARATOR) != NULL) {
dirname = g_dirname(item->path);
newpath = g_strconcat(dirname, G_DIR_SEPARATOR_S, name, NULL);
utf8newpath = g_strconcat(dirname, G_DIR_SEPARATOR_S,
name, NULL);
g_free(dirname);
} else
newpath = g_strdup(name);
utf8newpath = g_strdup(name);
g_free(item->name);
item->name = g_strdup(name);
paths[0] = g_strdup(item->path);
paths[1] = newpath;
paths[1] = utf8newpath;
g_node_traverse(item->node, G_PRE_ORDER, G_TRAVERSE_ALL, -1,
mh_rename_folder_func, paths);
@ -776,7 +784,7 @@ static void mh_scan_tree_recursive(FolderItem *item)
DIR *dp;
struct dirent *d;
struct stat s;
gchar *entry;
gchar *real_path, *entry, *utf8entry, *utf8name;
gint n_msg = 0;
g_return_if_fail(item != NULL);
@ -784,11 +792,13 @@ static void mh_scan_tree_recursive(FolderItem *item)
folder = item->folder;
dp = opendir(item->path ? item->path : ".");
real_path = item->path ? mh_filename_from_utf8(item->path) : g_strdup(".");
dp = opendir(real_path);
if (!dp) {
FILE_OP_ERROR(item->path ? item->path : ".", "opendir");
FILE_OP_ERROR(real_path, "opendir");
return;
}
g_free(real_path);
debug_print("scanning %s ...\n",
item->path ? item->path
@ -799,15 +809,19 @@ static void mh_scan_tree_recursive(FolderItem *item)
while ((d = readdir(dp)) != NULL) {
if (d->d_name[0] == '.') continue;
utf8name = mh_filename_to_utf8(d->d_name);
if (item->path)
entry = g_strconcat(item->path, G_DIR_SEPARATOR_S,
d->d_name, NULL);
utf8entry = g_strconcat(item->path, G_DIR_SEPARATOR_S,
utf8name, NULL);
else
entry = g_strdup(d->d_name);
utf8entry = g_strdup(utf8name);
entry = mh_filename_from_utf8(utf8entry);
if (stat(entry, &s) < 0) {
FILE_OP_ERROR(entry, "stat");
g_free(entry);
g_free(utf8entry);
g_free(utf8name);
continue;
}
@ -818,6 +832,8 @@ static void mh_scan_tree_recursive(FolderItem *item)
#if 0
if (mh_is_maildir(entry)) {
g_free(entry);
g_free(utf8entry);
g_free(utf8name);
continue;
}
#endif
@ -832,7 +848,7 @@ static void mh_scan_tree_recursive(FolderItem *item)
}
if (!new_item) {
debug_print("new folder '%s' found.\n", entry);
new_item = folder_item_new(folder, d->d_name, entry);
new_item = folder_item_new(folder, utf8name, utf8entry);
folder_item_append(item, new_item);
}
@ -864,6 +880,8 @@ static void mh_scan_tree_recursive(FolderItem *item)
} else if (to_number(d->d_name) != -1) n_msg++;
g_free(entry);
g_free(utf8entry);
g_free(utf8name);
}
closedir(dp);
@ -913,3 +931,37 @@ static gboolean mh_rename_folder_func(GNode *node, gpointer data)
return FALSE;
}
#warning FIXME_GTK2 /* should we use g_filename_from_utf8()? */
static gchar *mh_filename_from_utf8(const gchar *path)
{
const gchar *src_codeset = CS_UTF_8;
const gchar *dest_codeset = conv_get_current_charset_str();
gchar *real_path;
real_path = conv_codeset_strdup(path, src_codeset, dest_codeset);
if (!real_path) {
g_warning("mh_filename_from_utf8: faild to convert character set\n");
/* FIXME: show dialog? */
real_path = g_strdup(path);
}
return real_path;
}
#warning FIXME_GTK2 /* should we use g_filename_to_utf8()? */
static gchar *mh_filename_to_utf8(const gchar *path)
{
const gchar *src_codeset = conv_get_current_charset_str();
const gchar *dest_codeset = CS_UTF_8;
gchar *utf8path;
utf8path = conv_codeset_strdup(path, src_codeset, dest_codeset);
if (!utf8path) {
g_warning("mh_filename_to_utf8: faild to convert character set\n");
/* FIXME: show dialog? */
utf8path = g_strdup(path);
}
return utf8path;
}

View file

@ -223,16 +223,16 @@ MimeView *mimeview_create(MainWindow *mainwin)
GTK_CAN_FOCUS);
gtk_container_add(GTK_CONTAINER(scrolledwin), ctree);
gtk_signal_connect(GTK_OBJECT(ctree), "tree_select_row",
GTK_SIGNAL_FUNC(mimeview_selected), mimeview);
gtk_signal_connect(GTK_OBJECT(ctree), "button_press_event",
GTK_SIGNAL_FUNC(mimeview_button_pressed), mimeview);
gtk_signal_connect(GTK_OBJECT(ctree), "key_press_event",
GTK_SIGNAL_FUNC(mimeview_key_pressed), mimeview);
gtk_signal_connect(GTK_OBJECT (ctree),"start_drag",
GTK_SIGNAL_FUNC (mimeview_start_drag), mimeview);
gtk_signal_connect(GTK_OBJECT(ctree), "drag_data_get",
GTK_SIGNAL_FUNC(mimeview_drag_data_get), mimeview);
g_signal_connect(G_OBJECT(ctree), "tree_select_row",
G_CALLBACK(mimeview_selected), mimeview);
g_signal_connect(G_OBJECT(ctree), "button_press_event",
G_CALLBACK(mimeview_button_pressed), mimeview);
g_signal_connect(G_OBJECT(ctree), "key_press_event",
G_CALLBACK(mimeview_key_pressed), mimeview);
g_signal_connect(G_OBJECT (ctree),"start_drag",
G_CALLBACK (mimeview_start_drag), mimeview);
g_signal_connect(G_OBJECT(ctree), "drag_data_get",
G_CALLBACK(mimeview_drag_data_get), mimeview);
mime_notebook = gtk_notebook_new();
gtk_widget_show(mime_notebook);
@ -240,7 +240,7 @@ MimeView *mimeview_create(MainWindow *mainwin)
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(mime_notebook), FALSE);
gtk_notebook_set_show_border(GTK_NOTEBOOK(mime_notebook), FALSE);
gtk_notebook_set_page(GTK_NOTEBOOK(notebook), 0);
gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), 0);
icon_vbox = gtk_vbox_new(FALSE, 2);
icon_scroll = gtk_layout_new(NULL, NULL);
@ -251,15 +251,15 @@ MimeView *mimeview_create(MainWindow *mainwin)
arrow = gtk_arrow_new(GTK_ARROW_LEFT, GTK_SHADOW_NONE);
gtk_widget_show(arrow);
gtk_container_add(GTK_CONTAINER(mime_toggle), arrow);
gtk_signal_connect(GTK_OBJECT(mime_toggle), "toggled",
GTK_SIGNAL_FUNC(mime_toggle_button_cb), mimeview);
g_signal_connect(G_OBJECT(mime_toggle), "toggled",
G_CALLBACK(mime_toggle_button_cb), mimeview);
icon_mainbox = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(icon_mainbox), mime_toggle, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(icon_mainbox), icon_scroll, TRUE, TRUE, 3);
gtk_box_pack_end(GTK_BOX(icon_mainbox), scrollbutton, FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(icon_mainbox), "size_allocate",
GTK_SIGNAL_FUNC(icon_scroll_size_allocate_cb), mimeview);
g_signal_connect(G_OBJECT(icon_mainbox), "size_allocate",
G_CALLBACK(icon_scroll_size_allocate_cb), mimeview);
ctree_mainbox = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(ctree_mainbox), scrolledwin, TRUE, TRUE, 0);
@ -398,14 +398,14 @@ void mimeview_show_message(MimeView *mimeview, MimeInfo *mimeinfo,
set_unchecked_signature(mimeinfo);
#endif
gtk_signal_handler_block_by_func(GTK_OBJECT(ctree), mimeview_selected,
mimeview);
g_signal_handlers_block_by_func(G_OBJECT(ctree), mimeview_selected,
mimeview);
mimeview_set_multipart_tree(mimeview, mimeinfo, NULL);
icon_list_create(mimeview, mimeinfo);
gtk_signal_handler_unblock_by_func(GTK_OBJECT(ctree),
mimeview_selected, mimeview);
g_signal_handlers_unblock_by_func(G_OBJECT(ctree),
mimeview_selected, mimeview);
/* search first text part */
for (node = GTK_CTREE_NODE(GTK_CLIST(ctree)->row_list);
@ -668,7 +668,8 @@ static gboolean mimeview_show_part(MimeView *mimeview, MimeInfo *partinfo)
}
viewer->show_mimepart(viewer, mimeview->file, partinfo);
return TRUE;
#warning FIXME_GTK2 Is it correct?
return FALSE;
}
static void mimeview_change_view_type(MimeView *mimeview, MimeViewType type)
@ -854,12 +855,17 @@ void mimeview_pass_key_press_event(MimeView *mimeview, GdkEventKey *event)
#define BREAK_ON_MODIFIER_KEY() \
if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) break
#warning FIXME_GTK2
#if 0
#define KEY_PRESS_EVENT_STOP() \
if (gtk_signal_n_emissions_by_name \
(GTK_OBJECT(ctree), "key_press_event") > 0) { \
gtk_signal_emit_stop_by_name(GTK_OBJECT(ctree), \
"key_press_event"); \
}
#else
#define KEY_PRESS_EVENT_STOP()
#endif
static gint mimeview_key_pressed(GtkWidget *widget, GdkEventKey *event,
MimeView *mimeview)
@ -895,8 +901,7 @@ static gint mimeview_key_pressed(GtkWidget *widget, GdkEventKey *event,
BREAK_ON_MODIFIER_KEY();
if (!GTK_CTREE_NODE_NEXT(mimeview->opened)) break;
KEY_PRESS_EVENT_STOP();
gtk_signal_emit_by_name(GTK_OBJECT(ctree), "scroll_vertical",
g_signal_emit_by_name(G_OBJECT(ctree), "scroll_vertical",
GTK_SCROLL_STEP_FORWARD, 0.0);
return TRUE;
case GDK_p:
@ -904,8 +909,7 @@ static gint mimeview_key_pressed(GtkWidget *widget, GdkEventKey *event,
BREAK_ON_MODIFIER_KEY();
if (!GTK_CTREE_NODE_PREV(mimeview->opened)) break;
KEY_PRESS_EVENT_STOP();
gtk_signal_emit_by_name(GTK_OBJECT(ctree), "scroll_vertical",
g_signal_emit_by_name(G_OBJECT(ctree), "scroll_vertical",
GTK_SCROLL_STEP_BACKWARD, 0.0);
return TRUE;
case GDK_y:
@ -941,6 +945,7 @@ static void mimeview_drag_data_get(GtkWidget *widget,
MimeView *mimeview)
{
gchar *filename, *uriname;
const gchar *bname;
MimeInfo *partinfo;
if (!mimeview->opened) return;
@ -951,11 +956,11 @@ static void mimeview_drag_data_get(GtkWidget *widget,
if (!partinfo->filename && !partinfo->name) return;
filename = partinfo->filename ? partinfo->filename : partinfo->name;
filename = g_basename(filename);
if (*filename == '\0') return;
bname = g_basename(filename);
if (*bname == '\0') return;
filename = g_strconcat(get_mime_tmp_dir(), G_DIR_SEPARATOR_S,
filename, NULL);
bname, NULL);
if (procmime_get_part(filename, mimeview->file, partinfo) < 0)
alertpanel_error
@ -1360,6 +1365,8 @@ static void icon_selected (MimeView *mimeview, gint num, MimeInfo *partinfo)
}
}
#warning FIXME_GTK2
#if 0
#undef KEY_PRESS_EVENT_STOP
#define KEY_PRESS_EVENT_STOP() \
if (gtk_signal_n_emissions_by_name \
@ -1367,6 +1374,7 @@ static void icon_selected (MimeView *mimeview, gint num, MimeInfo *partinfo)
gtk_signal_emit_stop_by_name(GTK_OBJECT(button), \
"key_press_event"); \
}
#endif
static gint icon_key_pressed(GtkWidget *button, GdkEventKey *event,
MimeView *mimeview)
{
@ -1468,7 +1476,7 @@ static void toggle_icon(GtkToggleButton *button, MimeView *mimeview)
{
GList *child;
child = gtk_container_children(GTK_CONTAINER(mimeview->icon_vbox));
child = gtk_container_get_children(GTK_CONTAINER(mimeview->icon_vbox));
for (; child != NULL; child = g_list_next(child)) {
if (GTK_IS_TOGGLE_BUTTON(child->data) &&
GTK_TOGGLE_BUTTON(child->data) != button &&
@ -1564,10 +1572,10 @@ static void icon_list_append_icon (MimeView *mimeview, MimeInfo *mimeinfo)
gtk_tooltips_set_tip(mimeview->tooltips, button, tip, NULL);
g_free(tip);
gtk_widget_show_all(button);
gtk_signal_connect(GTK_OBJECT(button), "button_press_event",
GTK_SIGNAL_FUNC(icon_clicked_cb), mimeview);
gtk_signal_connect(GTK_OBJECT(button), "key_press_event",
GTK_SIGNAL_FUNC(icon_key_pressed), mimeview);
g_signal_connect(G_OBJECT(button), "button_press_event",
G_CALLBACK(icon_clicked_cb), mimeview);
g_signal_connect(G_OBJECT(button), "key_press_event",
G_CALLBACK(icon_key_pressed), mimeview);
gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0);
}
@ -1682,8 +1690,8 @@ static void icon_list_create(MimeView *mimeview, MimeInfo *mimeinfo)
gtk_widget_size_request(mimeview->icon_vbox, &size);
width = size.width + 4;
if (width > mimeview->icon_mainbox->requisition.width) {
gtk_widget_set_usize(mimeview->icon_mainbox,
width, -1);
gtk_widget_set_size_request(mimeview->icon_mainbox,
width, -1);
}
}

View file

@ -561,7 +561,7 @@ gint mutt_import_data( MuttFile *muttFile, AddressCache *cache ) {
* no home. Filename should be g_free() when done.
*/
gchar *mutt_find_file( void ) {
gchar *homedir;
const gchar *homedir;
gchar str[ WORK_BUFLEN ];
gint len;
FILE *fp;

View file

@ -27,7 +27,6 @@
#include <sys/mman.h>
#include <glib.h>
#include <gdk/gdkkeysyms.h>
#include <gdk/gdkx.h> /* GDK_DISPLAY() */
#include <gtk/gtkmain.h>
#include <gtk/gtkwidget.h>
#include <gtk/gtkwindow.h>
@ -39,6 +38,9 @@
#include <gtk/gtkbutton.h>
#include <gtk/gtkfilesel.h>
#include <gtk/gtksignal.h>
#ifdef GDK_WINDOWING_X11
#include <gdk/gdkx.h> /* GDK_DISPLAY() */
#endif /* GDK_WINDOWING_X11 */
#include "intl.h"
#include "passphrase.h"
@ -55,8 +57,8 @@ static void passphrase_ok_cb(GtkWidget *widget, gpointer data);
static void passphrase_cancel_cb(GtkWidget *widget, gpointer data);
static gint passphrase_deleted(GtkWidget *widget, GdkEventAny *event,
gpointer data);
static void passphrase_key_pressed(GtkWidget *widget, GdkEventKey *event,
gpointer data);
static gboolean passphrase_key_pressed(GtkWidget *widget, GdkEventKey *event,
gpointer data);
static gchar* passphrase_mbox (const gchar *desc);
@ -81,17 +83,17 @@ passphrase_mbox (const gchar *desc)
GtkWidget *ok_button;
GtkWidget *cancel_button;
window = gtk_window_new(GTK_WINDOW_DIALOG);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), _("Passphrase"));
gtk_widget_set_usize(window, 450, -1);
gtk_widget_set_size_request(window, 450, -1);
gtk_container_set_border_width(GTK_CONTAINER(window), 4);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, FALSE);
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(passphrase_deleted), NULL);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(passphrase_key_pressed), NULL);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(passphrase_deleted), NULL);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(passphrase_key_pressed), NULL);
MANAGE_WINDOW_SIGNALS_CONNECT(window);
manage_window_set_transient(GTK_WINDOW(window));
@ -125,7 +127,7 @@ passphrase_mbox (const gchar *desc)
confirm_box = gtk_hbutton_box_new ();
gtk_button_box_set_layout (GTK_BUTTON_BOX(confirm_box), GTK_BUTTONBOX_END);
gtk_button_box_set_spacing (GTK_BUTTON_BOX(confirm_box), 5);
gtk_box_set_spacing (GTK_BOX(confirm_box), 5);
ok_button = gtk_button_new_with_label (_("OK"));
GTK_WIDGET_SET_FLAGS (ok_button, GTK_CAN_DEFAULT);
@ -138,15 +140,15 @@ passphrase_mbox (const gchar *desc)
gtk_box_pack_end(GTK_BOX(vbox), confirm_box, FALSE, FALSE, 0);
gtk_widget_grab_default (ok_button);
gtk_signal_connect(GTK_OBJECT(ok_button), "clicked",
GTK_SIGNAL_FUNC(passphrase_ok_cb), NULL);
gtk_signal_connect(GTK_OBJECT(pass_entry), "activate",
GTK_SIGNAL_FUNC(passphrase_ok_cb), NULL);
gtk_signal_connect(GTK_OBJECT(cancel_button), "clicked",
GTK_SIGNAL_FUNC(passphrase_cancel_cb), NULL);
g_signal_connect(G_OBJECT(ok_button), "clicked",
G_CALLBACK(passphrase_ok_cb), NULL);
g_signal_connect(G_OBJECT(pass_entry), "activate",
G_CALLBACK(passphrase_ok_cb), NULL);
g_signal_connect(G_OBJECT(cancel_button), "clicked",
G_CALLBACK(passphrase_cancel_cb), NULL);
if (grab_all)
gtk_object_set (GTK_OBJECT(window), "type", GTK_WINDOW_POPUP, NULL);
g_object_set (G_OBJECT(window), "type", GTK_WINDOW_POPUP, NULL);
gtk_window_set_position (GTK_WINDOW(window), GTK_WIN_POS_CENTER);
if (grab_all)
gtk_window_set_policy (GTK_WINDOW(window), FALSE, FALSE, TRUE);
@ -154,17 +156,23 @@ passphrase_mbox (const gchar *desc)
gtk_widget_show_all(window);
if (grab_all) {
#ifdef GDK_WINDOWING_X11
XGrabServer(GDK_DISPLAY());
#endif /* GDK_WINDOWING_X11 */
if ( gdk_pointer_grab ( window->window, TRUE, 0,
NULL, NULL, GDK_CURRENT_TIME)) {
#ifdef GDK_WINDOWING_X11
XUngrabServer ( GDK_DISPLAY() );
#endif /* GDK_WINDOWING_X11 */
g_warning ("OOPS: Could not grab mouse\n");
gtk_widget_destroy (window);
return NULL;
}
if ( gdk_keyboard_grab( window->window, FALSE, GDK_CURRENT_TIME )) {
gdk_pointer_ungrab (GDK_CURRENT_TIME);
#ifdef GDK_WINDOWING_X11
XUngrabServer ( GDK_DISPLAY() );
#endif /* GDK_WINDOWING_X11 */
g_warning ("OOPS: Could not grab keyboard\n");
gtk_widget_destroy (window);
return NULL;
@ -174,7 +182,9 @@ passphrase_mbox (const gchar *desc)
gtk_main();
if (grab_all) {
#ifdef GDK_WINDOWING_X11
XUngrabServer (GDK_DISPLAY());
#endif /* GDK_WINDOWING_X11 */
gdk_pointer_ungrab (GDK_CURRENT_TIME);
gdk_keyboard_ungrab (GDK_CURRENT_TIME);
gdk_flush();
@ -183,9 +193,9 @@ passphrase_mbox (const gchar *desc)
manage_window_focus_out(window, NULL, NULL);
if (pass_ack) {
the_passphrase = gtk_entry_get_text(GTK_ENTRY(pass_entry));
if (the_passphrase) /* Hmmm: Do we really need this? */
the_passphrase = g_strdup (the_passphrase);
const gchar *entry_text = gtk_entry_get_text(GTK_ENTRY(pass_entry));
if (entry_text) /* Hmmm: Do we really need this? */
the_passphrase = g_strdup (entry_text);
}
gtk_widget_destroy (window);
@ -216,11 +226,12 @@ passphrase_deleted(GtkWidget *widget, GdkEventAny *event, gpointer data)
}
static void
static gboolean
passphrase_key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
if (event && event->keyval == GDK_Escape)
passphrase_cancel_cb(NULL, NULL);
return FALSE;
}
static gint

View file

@ -660,7 +660,7 @@ gint pine_import_data( PineFile *pineFile, AddressCache *cache ) {
* no home. Filename should be g_free() when done.
*/
gchar *pine_find_file( void ) {
gchar *homedir;
const gchar *homedir;
gchar str[ WORK_BUFLEN ];
gint len;
FILE *fp;

View file

@ -10,7 +10,6 @@ image_viewer_la_SOURCES = \
image_viewer_la_LDFLAGS = \
-avoid-version -module \
$(GTK_LIBS) \
$(GDK_IMLIB_LIBS) \
$(GDK_PIXBUF_LIBS)
INCLUDES = \
@ -22,6 +21,5 @@ AM_CPPFLAGS = \
$(ASPELL_CFLAGS) \
$(GLIB_CFLAGS) \
$(GTK_CFLAGS) \
$(GDK_IMLIB_CFLAGS) \
$(GDK_PIXBUF_CFLAGS) \
$(OPENSSL_CFLAGS)

View file

@ -82,10 +82,15 @@ static void image_viewer_load_file(ImageViewer *imageviewer, const gchar *imgfil
gint avail_height;
gint new_width;
gint new_height;
GError *error = NULL;
debug_print("image_viewer_show_mimepart\n");
pixbuf = gdk_pixbuf_new_from_file(imgfile);
pixbuf = gdk_pixbuf_new_from_file(imgfile, &error);
if (error) {
g_warning(error->message);
g_error_free(error);
}
if (!pixbuf) {
g_warning("Can't load the image.");
return;

View file

@ -557,7 +557,7 @@ static void prefs_account_edit_custom_header (void);
static gint prefs_account_deleted (GtkWidget *widget,
GdkEventAny *event,
gpointer data);
static void prefs_account_key_pressed (GtkWidget *widget,
static gboolean prefs_account_key_pressed (GtkWidget *widget,
GdkEventKey *event,
gpointer data);
static void prefs_account_ok (void);
@ -678,7 +678,7 @@ PrefsAccount *prefs_account_open(PrefsAccount *ac_prefs)
}
manage_window_set_transient(GTK_WINDOW(dialog.window));
gtk_notebook_set_page(GTK_NOTEBOOK(dialog.notebook), 0);
gtk_notebook_set_current_page(GTK_NOTEBOOK(dialog.notebook), 0);
gtk_widget_grab_focus(dialog.ok_btn);
tmp_ac_prefs = *ac_prefs;
@ -746,18 +746,18 @@ static void prefs_account_create(void)
/* create dialog */
prefs_dialog_create(&dialog);
gtk_signal_connect(GTK_OBJECT(dialog.window), "delete_event",
GTK_SIGNAL_FUNC(prefs_account_deleted), NULL);
gtk_signal_connect(GTK_OBJECT(dialog.window), "key_press_event",
GTK_SIGNAL_FUNC(prefs_account_key_pressed), NULL);
g_signal_connect(G_OBJECT(dialog.window), "delete_event",
G_CALLBACK(prefs_account_deleted), NULL);
g_signal_connect(G_OBJECT(dialog.window), "key_press_event",
G_CALLBACK(prefs_account_key_pressed), NULL);
MANAGE_WINDOW_SIGNALS_CONNECT(dialog.window);
gtk_signal_connect(GTK_OBJECT(dialog.ok_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_account_ok), NULL);
gtk_signal_connect(GTK_OBJECT(dialog.apply_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_account_apply), NULL);
gtk_signal_connect(GTK_OBJECT(dialog.cancel_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_account_cancel), NULL);
g_signal_connect(G_OBJECT(dialog.ok_btn), "clicked",
G_CALLBACK(prefs_account_ok), NULL);
g_signal_connect(G_OBJECT(dialog.apply_btn), "clicked",
G_CALLBACK(prefs_account_apply), NULL);
g_signal_connect(G_OBJECT(dialog.cancel_btn), "clicked",
G_CALLBACK(prefs_account_cancel), NULL);
prefs_account_basic_create();
SET_NOTEBOOK_LABEL(dialog.notebook, _("Basic"), page++);
@ -802,9 +802,9 @@ static void prefs_account_fix_size(void)
#define SET_ACTIVATE(menuitem) \
{ \
gtk_signal_connect(GTK_OBJECT(menuitem), "activate", \
GTK_SIGNAL_FUNC(prefs_account_protocol_activated), \
NULL); \
g_signal_connect(G_OBJECT(menuitem), "activate", \
G_CALLBACK(prefs_account_protocol_activated), \
NULL); \
}
#define TABLE_YPAD 2
@ -861,7 +861,7 @@ static void prefs_account_basic_create(void)
acname_entry = gtk_entry_new ();
gtk_widget_show (acname_entry);
gtk_widget_set_usize (acname_entry, DEFAULT_ENTRY_WIDTH, -1);
gtk_widget_set_size_request (acname_entry, DEFAULT_ENTRY_WIDTH, -1);
gtk_box_pack_start (GTK_BOX (hbox), acname_entry, TRUE, TRUE, 0);
default_chkbtn = gtk_check_button_new_with_label (_("Set as default"));
@ -1001,14 +1001,14 @@ static void prefs_account_basic_create(void)
uid_entry = gtk_entry_new ();
gtk_widget_show (uid_entry);
gtk_widget_set_usize (uid_entry, DEFAULT_ENTRY_WIDTH, -1);
gtk_widget_set_size_request (uid_entry, DEFAULT_ENTRY_WIDTH, -1);
gtk_table_attach (GTK_TABLE (serv_table), uid_entry, 1, 2, 7, 8,
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
pass_entry = gtk_entry_new ();
gtk_widget_show (pass_entry);
gtk_widget_set_usize (pass_entry, DEFAULT_ENTRY_WIDTH, -1);
gtk_widget_set_size_request (pass_entry, DEFAULT_ENTRY_WIDTH, -1);
gtk_table_attach (GTK_TABLE (serv_table), pass_entry, 3, 4, 7, 8,
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
@ -1046,9 +1046,9 @@ static void prefs_account_basic_create(void)
gtk_table_attach (GTK_TABLE (serv_table), mailcmd_chkbtn, 0, 4, 5, 6,
GTK_EXPAND | GTK_FILL,
0, 0, TABLE_YPAD);
gtk_signal_connect(GTK_OBJECT(mailcmd_chkbtn), "toggled",
GTK_SIGNAL_FUNC(prefs_account_mailcmd_toggled),
NULL);
g_signal_connect(G_OBJECT(mailcmd_chkbtn), "toggled",
G_CALLBACK(prefs_account_mailcmd_toggled),
NULL);
mailcmd_label = gtk_label_new (_("command to send mails"));
gtk_widget_show (mailcmd_label);
@ -1156,7 +1156,7 @@ static void prefs_account_receive_create(void)
hbox_spc = gtk_hbox_new (FALSE, 0);
gtk_widget_show (hbox_spc);
gtk_box_pack_start (GTK_BOX (hbox1), hbox_spc, FALSE, FALSE, 0);
gtk_widget_set_usize (hbox_spc, 12, -1);
gtk_widget_set_size_request (hbox_spc, 12, -1);
leave_time_label = gtk_label_new (_("Remove after"));
gtk_widget_show (leave_time_label);
@ -1164,7 +1164,7 @@ static void prefs_account_receive_create(void)
leave_time_entry = gtk_entry_new ();
gtk_widget_show (leave_time_entry);
gtk_widget_set_usize (leave_time_entry, 64, -1);
gtk_widget_set_size_request (leave_time_entry, 64, -1);
gtk_box_pack_start (GTK_BOX (hbox1), leave_time_entry, FALSE, FALSE, 0);
leave_time_label = gtk_label_new (_("days"));
@ -1182,7 +1182,7 @@ static void prefs_account_receive_create(void)
hbox_spc = gtk_hbox_new (FALSE, 0);
gtk_widget_show (hbox_spc);
gtk_box_pack_start (GTK_BOX (hbox1), hbox_spc, FALSE, FALSE, 0);
gtk_widget_set_usize (hbox_spc, 12, -1);
gtk_widget_set_size_request (hbox_spc, 12, -1);
leave_time_label = gtk_label_new (_("(0 days: remove immediately)"));
gtk_widget_show (leave_time_label);
@ -1201,7 +1201,7 @@ static void prefs_account_receive_create(void)
size_limit_entry = gtk_entry_new ();
gtk_widget_show (size_limit_entry);
gtk_widget_set_usize (size_limit_entry, 64, -1);
gtk_widget_set_size_request (size_limit_entry, 64, -1);
gtk_box_pack_start (GTK_BOX (hbox1), size_limit_entry, FALSE, FALSE, 0);
label = gtk_label_new (_("KB"));
@ -1222,15 +1222,15 @@ static void prefs_account_receive_create(void)
inbox_entry = gtk_entry_new ();
gtk_widget_show (inbox_entry);
gtk_widget_set_usize (inbox_entry, DEFAULT_ENTRY_WIDTH, -1);
gtk_widget_set_size_request (inbox_entry, DEFAULT_ENTRY_WIDTH, -1);
gtk_box_pack_start (GTK_BOX (hbox1), inbox_entry, TRUE, TRUE, 0);
inbox_btn = gtk_button_new_with_label (_(" Select... "));
gtk_widget_show (inbox_btn);
gtk_box_pack_start (GTK_BOX (hbox1), inbox_btn, FALSE, FALSE, 0);
gtk_signal_connect (GTK_OBJECT (inbox_btn), "clicked",
GTK_SIGNAL_FUNC (prefs_account_select_folder_cb),
inbox_entry);
g_signal_connect (G_OBJECT (inbox_btn), "clicked",
G_CALLBACK (prefs_account_select_folder_cb),
inbox_entry);
PACK_VSPACER(vbox2, vbox3, VSPACING_NARROW_2);
@ -1258,7 +1258,7 @@ static void prefs_account_receive_create(void)
gtk_widget_show (spinbtn_maxarticle);
gtk_box_pack_start (GTK_BOX (hbox2), spinbtn_maxarticle,
FALSE, FALSE, 0);
gtk_widget_set_usize (spinbtn_maxarticle, 64, -1);
gtk_widget_set_size_request (spinbtn_maxarticle, 64, -1);
gtk_spin_button_set_numeric
(GTK_SPIN_BUTTON (spinbtn_maxarticle), TRUE);
@ -1373,9 +1373,9 @@ static void prefs_account_send_create(void)
gtk_widget_show (customhdr_edit_btn);
gtk_box_pack_start (GTK_BOX (hbox), customhdr_edit_btn,
FALSE, FALSE, 0);
gtk_signal_connect (GTK_OBJECT (customhdr_edit_btn), "clicked",
GTK_SIGNAL_FUNC (prefs_account_edit_custom_header),
NULL);
g_signal_connect (G_OBJECT (customhdr_edit_btn), "clicked",
G_CALLBACK (prefs_account_edit_custom_header),
NULL);
SET_TOGGLE_SENSITIVITY (customhdr_chkbtn, customhdr_edit_btn);
@ -1400,7 +1400,7 @@ static void prefs_account_send_create(void)
hbox_spc = gtk_hbox_new (FALSE, 0);
gtk_widget_show (hbox_spc);
gtk_box_pack_start (GTK_BOX (hbox), hbox_spc, FALSE, FALSE, 0);
gtk_widget_set_usize (hbox_spc, 12, -1);
gtk_widget_set_size_request (hbox_spc, 12, -1);
label = gtk_label_new (_("Authentication method"));
gtk_widget_show (label);
@ -1429,7 +1429,7 @@ static void prefs_account_send_create(void)
hbox_spc = gtk_hbox_new (FALSE, 0);
gtk_widget_show (hbox_spc);
gtk_box_pack_start (GTK_BOX (hbox), hbox_spc, FALSE, FALSE, 0);
gtk_widget_set_usize (hbox_spc, 12, -1);
gtk_widget_set_size_request (hbox_spc, 12, -1);
label = gtk_label_new (_("User ID"));
gtk_widget_show (label);
@ -1437,7 +1437,7 @@ static void prefs_account_send_create(void)
smtp_uid_entry = gtk_entry_new ();
gtk_widget_show (smtp_uid_entry);
gtk_widget_set_usize (smtp_uid_entry, DEFAULT_ENTRY_WIDTH, -1);
gtk_widget_set_size_request (smtp_uid_entry, DEFAULT_ENTRY_WIDTH, -1);
gtk_box_pack_start (GTK_BOX (hbox), smtp_uid_entry, TRUE, TRUE, 0);
label = gtk_label_new (_("Password"));
@ -1446,7 +1446,7 @@ static void prefs_account_send_create(void)
smtp_pass_entry = gtk_entry_new ();
gtk_widget_show (smtp_pass_entry);
gtk_widget_set_usize (smtp_pass_entry, DEFAULT_ENTRY_WIDTH, -1);
gtk_widget_set_size_request (smtp_pass_entry, DEFAULT_ENTRY_WIDTH, -1);
gtk_box_pack_start (GTK_BOX (hbox), smtp_pass_entry, TRUE, TRUE, 0);
gtk_entry_set_visibility (GTK_ENTRY (smtp_pass_entry), FALSE);
@ -1459,7 +1459,7 @@ static void prefs_account_send_create(void)
hbox_spc = gtk_hbox_new (FALSE, 0);
gtk_widget_show (hbox_spc);
gtk_box_pack_start (GTK_BOX (hbox), hbox_spc, FALSE, FALSE, 0);
gtk_widget_set_usize (hbox_spc, 12, -1);
gtk_widget_set_size_request (hbox_spc, 12, -1);
label = gtk_label_new
(_("If you leave these entries empty, the same\n"
@ -1473,9 +1473,9 @@ static void prefs_account_send_create(void)
PACK_CHECK_BUTTON (vbox3, pop_bfr_smtp_chkbtn,
_("Authenticate with POP3 before sending"));
gtk_signal_connect (GTK_OBJECT (pop_bfr_smtp_chkbtn), "clicked",
GTK_SIGNAL_FUNC (pop_bfr_smtp_tm_set_sens),
NULL);
g_signal_connect (G_OBJECT (pop_bfr_smtp_chkbtn), "clicked",
G_CALLBACK (pop_bfr_smtp_tm_set_sens),
NULL);
hbox = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox);
@ -1484,7 +1484,7 @@ static void prefs_account_send_create(void)
hbox_spc = gtk_hbox_new (FALSE, 0);
gtk_widget_show (hbox_spc);
gtk_box_pack_start (GTK_BOX (hbox), hbox_spc, FALSE, FALSE, 0);
gtk_widget_set_usize (hbox_spc, 12, -1);
gtk_widget_set_size_request (hbox_spc, 12, -1);
label = gtk_label_new(_("POP authentication timeout: "));
gtk_widget_show (label);
@ -1492,7 +1492,7 @@ static void prefs_account_send_create(void)
pop_bfr_smtp_tm_entry = gtk_entry_new ();
gtk_widget_show (pop_bfr_smtp_tm_entry);
gtk_widget_set_usize (pop_bfr_smtp_tm_entry, 30, -1);
gtk_widget_set_size_request (pop_bfr_smtp_tm_entry, 30, -1);
gtk_box_pack_start (GTK_BOX (hbox), pop_bfr_smtp_tm_entry, FALSE, FALSE, 0);
label = gtk_label_new(_("minutes"));
@ -1563,7 +1563,7 @@ static void prefs_account_compose_create(void)
gtk_widget_show (entry_sigsep);
gtk_box_pack_start (GTK_BOX (hbox1), entry_sigsep, FALSE, FALSE, 0);
gtk_widget_set_usize (entry_sigsep, 64, -1);
gtk_widget_set_size_request (entry_sigsep, 64, -1);
sig_hbox = gtk_hbox_new (FALSE, 8);
gtk_widget_show (sig_hbox);
@ -1573,16 +1573,18 @@ static void prefs_account_compose_create(void)
gtk_widget_show (sigfile_radiobtn);
gtk_box_pack_start (GTK_BOX (sig_hbox), sigfile_radiobtn,
FALSE, FALSE, 0);
gtk_object_set_user_data (GTK_OBJECT (sigfile_radiobtn),
GINT_TO_POINTER (SIG_FILE));
g_object_set_data (G_OBJECT (sigfile_radiobtn),
MENU_VAL_ID,
GINT_TO_POINTER (SIG_FILE));
sigcmd_radiobtn = gtk_radio_button_new_with_label_from_widget
(GTK_RADIO_BUTTON(sigfile_radiobtn), _("Command output"));
gtk_widget_show (sigcmd_radiobtn);
gtk_box_pack_start (GTK_BOX (sig_hbox), sigcmd_radiobtn,
FALSE, FALSE, 0);
gtk_object_set_user_data (GTK_OBJECT (sigcmd_radiobtn),
GINT_TO_POINTER (SIG_COMMAND));
g_object_set_data (G_OBJECT (sigcmd_radiobtn),
MENU_VAL_ID,
GINT_TO_POINTER (SIG_COMMAND));
hbox2 = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox2);
@ -1712,8 +1714,8 @@ static void prefs_account_privacy_create(void)
FALSE, FALSE, 0);
gtk_object_set_user_data (GTK_OBJECT (gnupg_inline_radiobtn),
GINT_TO_POINTER (GNUPG_MODE_INLINE));
gtk_signal_connect (GTK_OBJECT (gnupg_inline_radiobtn), "clicked",
prefs_account_gnupg_inline_warning, NULL);
g_signal_connect (G_OBJECT (gnupg_inline_radiobtn), "clicked",
prefs_account_gnupg_inline_warning, NULL);
PACK_FRAME (vbox1, frame1, _("Sign key"));
@ -1728,8 +1730,9 @@ static void prefs_account_privacy_create(void)
gtk_widget_show (defaultkey_radiobtn);
gtk_box_pack_start (GTK_BOX (vbox2), defaultkey_radiobtn,
FALSE, FALSE, 0);
gtk_object_set_user_data (GTK_OBJECT (defaultkey_radiobtn),
GINT_TO_POINTER (SIGN_KEY_DEFAULT));
g_object_set_data (G_OBJECT (defaultkey_radiobtn),
MENU_VAL_ID,
GINT_TO_POINTER (SIGN_KEY_DEFAULT));
emailkey_radiobtn = gtk_radio_button_new_with_label_from_widget
(GTK_RADIO_BUTTON (defaultkey_radiobtn),
@ -1737,8 +1740,9 @@ static void prefs_account_privacy_create(void)
gtk_widget_show (emailkey_radiobtn);
gtk_box_pack_start (GTK_BOX (vbox2), emailkey_radiobtn,
FALSE, FALSE, 0);
gtk_object_set_user_data (GTK_OBJECT (emailkey_radiobtn),
GINT_TO_POINTER (SIGN_KEY_BY_FROM));
g_object_set_data (G_OBJECT (emailkey_radiobtn),
MENU_VAL_ID,
GINT_TO_POINTER (SIGN_KEY_BY_FROM));
customkey_radiobtn = gtk_radio_button_new_with_label_from_widget
(GTK_RADIO_BUTTON (defaultkey_radiobtn),
@ -1746,8 +1750,9 @@ static void prefs_account_privacy_create(void)
gtk_widget_show (customkey_radiobtn);
gtk_box_pack_start (GTK_BOX (vbox2), customkey_radiobtn,
FALSE, FALSE, 0);
gtk_object_set_user_data (GTK_OBJECT (customkey_radiobtn),
GINT_TO_POINTER (SIGN_KEY_CUSTOM));
g_object_set_data (G_OBJECT (customkey_radiobtn),
MENU_VAL_ID,
GINT_TO_POINTER (SIGN_KEY_CUSTOM));
hbox1 = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox1);
@ -1756,7 +1761,7 @@ static void prefs_account_privacy_create(void)
label = gtk_label_new ("");
gtk_widget_show (label);
gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 0);
gtk_widget_set_usize (label, 16, -1);
gtk_widget_set_size_request (label, 16, -1);
label = gtk_label_new (_("User or key ID:"));
gtk_widget_show (label);
@ -1788,8 +1793,9 @@ static void prefs_account_privacy_create(void)
(GTK_RADIO_BUTTON (btn_p), label); \
gtk_widget_show (btn); \
gtk_box_pack_start (GTK_BOX (box), btn, FALSE, FALSE, 0); \
gtk_object_set_user_data (GTK_OBJECT (btn), \
GINT_TO_POINTER (data)); \
g_object_set_data (G_OBJECT (btn), \
MENU_VAL_ID, \
GINT_TO_POINTER (data)); \
}
#define CREATE_RADIO_BUTTONS(box, \
@ -1800,8 +1806,9 @@ static void prefs_account_privacy_create(void)
btn1 = gtk_radio_button_new_with_label(NULL, btn1_label); \
gtk_widget_show (btn1); \
gtk_box_pack_start (GTK_BOX (box), btn1, FALSE, FALSE, 0); \
gtk_object_set_user_data (GTK_OBJECT (btn1), \
GINT_TO_POINTER (btn1_data)); \
g_object_set_data (G_OBJECT (btn1), \
MENU_VAL_ID, \
GINT_TO_POINTER (btn1_data)); \
\
CREATE_RADIO_BUTTON(box, btn2, btn1, btn2_label, btn2_data); \
CREATE_RADIO_BUTTON(box, btn3, btn1, btn3_label, btn3_data); \
@ -1890,8 +1897,9 @@ static void prefs_account_ssl_create(void)
gtk_widget_show (nntp_nossl_radiobtn);
gtk_box_pack_start (GTK_BOX (vbox4), nntp_nossl_radiobtn,
FALSE, FALSE, 0);
gtk_object_set_user_data (GTK_OBJECT (nntp_nossl_radiobtn),
GINT_TO_POINTER (SSL_NONE));
g_object_set_data (G_OBJECT (nntp_nossl_radiobtn),
MENU_VAL_ID,
GINT_TO_POINTER (SSL_NONE));
CREATE_RADIO_BUTTON(vbox4, nntp_ssltunnel_radiobtn, nntp_nossl_radiobtn,
_("Use SSL for NNTP connection"), SSL_TUNNEL);
@ -1927,7 +1935,7 @@ static void prefs_account_ssl_create(void)
hbox_spc = gtk_hbox_new (FALSE, 0);
gtk_widget_show (hbox_spc);
gtk_box_pack_start (GTK_BOX (hbox), hbox_spc, FALSE, FALSE, 0);
gtk_widget_set_usize (hbox_spc, 16, -1);
gtk_widget_set_size_request (hbox_spc, 16, -1);
label = gtk_label_new
(_("(Turn this off if you have SSL connection problems)"));
@ -2038,10 +2046,11 @@ static void prefs_account_advanced_create(void)
#define PACK_PORT_ENTRY(box, entry) \
{ \
entry = gtk_entry_new_with_max_length (5); \
entry = gtk_entry_new (); \
gtk_entry_set_max_length (GTK_ENTRY(entry), 5); \
gtk_widget_show (entry); \
gtk_box_pack_start (GTK_BOX (box), entry, FALSE, FALSE, 0); \
gtk_widget_set_usize (entry, 64, -1); \
gtk_widget_set_size_request (entry, 64, -1); \
}
vbox1 = gtk_vbox_new (FALSE, VSPACING);
@ -2096,9 +2105,9 @@ static void prefs_account_advanced_create(void)
PACK_HBOX (hbox1);
PACK_CHECK_BUTTON (hbox1, checkbtn_crosspost,
_("Mark cross-posted messages as read and color:"));
gtk_signal_connect (GTK_OBJECT (checkbtn_crosspost), "toggled",
GTK_SIGNAL_FUNC (crosspost_color_toggled),
NULL);
g_signal_connect (G_OBJECT (checkbtn_crosspost), "toggled",
G_CALLBACK (crosspost_color_toggled),
NULL);
colormenu_crosspost = gtk_option_menu_new();
gtk_widget_show (colormenu_crosspost);
@ -2154,9 +2163,9 @@ static void prefs_account_advanced_create(void)
gtk_widget_show (button); \
gtk_table_attach (GTK_TABLE (table), button, \
2, 3, n, n + 1, GTK_FILL, 0, 0, 0); \
gtk_signal_connect \
(GTK_OBJECT (button), "clicked", \
GTK_SIGNAL_FUNC (prefs_account_select_folder_cb), \
g_signal_connect \
(G_OBJECT (button), "clicked", \
G_CALLBACK (prefs_account_select_folder_cb), \
entry); \
\
SET_TOGGLE_SENSITIVITY (chkbtn, entry); \
@ -2206,11 +2215,12 @@ static gint prefs_account_deleted(GtkWidget *widget, GdkEventAny *event,
return TRUE;
}
static void prefs_account_key_pressed(GtkWidget *widget, GdkEventKey *event,
gpointer data)
static gboolean prefs_account_key_pressed(GtkWidget *widget, GdkEventKey *event,
gpointer data)
{
if (event && event->keyval == GDK_Escape)
prefs_account_cancel();
return FALSE;
}
static void prefs_account_ok(void)
@ -2228,7 +2238,7 @@ static gint prefs_account_apply(void)
menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(basic.protocol_optmenu));
menuitem = gtk_menu_get_active(GTK_MENU(menu));
protocol = GPOINTER_TO_INT
(gtk_object_get_user_data(GTK_OBJECT(menuitem)));
(g_object_get_data(G_OBJECT(menuitem), MENU_VAL_ID));
if (*gtk_entry_get_text(GTK_ENTRY(basic.acname_entry)) == '\0') {
alertpanel_error(_("Account name is not entered."));
@ -2318,12 +2328,12 @@ static void prefs_account_enum_set_data_from_radiobtn(PrefParam *pparam)
GSList *group;
radiobtn = GTK_RADIO_BUTTON (*pparam->widget);
group = gtk_radio_button_group (radiobtn);
group = gtk_radio_button_get_group (radiobtn);
while (group != NULL) {
GtkToggleButton *btn = GTK_TOGGLE_BUTTON (group->data);
if (gtk_toggle_button_get_active (btn)) {
*((gint *)pparam->data) = GPOINTER_TO_INT
(gtk_object_get_user_data (GTK_OBJECT (btn)));
(g_object_get_data (G_OBJECT (btn), MENU_VAL_ID));
break;
}
group = group->next;
@ -2338,10 +2348,10 @@ static void prefs_account_enum_set_radiobtn(PrefParam *pparam)
data = GINT_TO_POINTER (*((gint *)pparam->data));
radiobtn = GTK_RADIO_BUTTON (*pparam->widget);
group = gtk_radio_button_group (radiobtn);
group = gtk_radio_button_get_group (radiobtn);
while (group != NULL) {
GtkToggleButton *btn = GTK_TOGGLE_BUTTON (group->data);
gpointer data1 = gtk_object_get_user_data (GTK_OBJECT (btn));
gpointer data1 = g_object_get_data (G_OBJECT (btn), MENU_VAL_ID);
if (data1 == data) {
gtk_toggle_button_set_active (btn, TRUE);
break;
@ -2370,7 +2380,7 @@ static void prefs_account_protocol_set_data_from_optmenu(PrefParam *pparam)
menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(*pparam->widget));
menuitem = gtk_menu_get_active(GTK_MENU(menu));
*((RecvProtocol *)pparam->data) = GPOINTER_TO_INT
(gtk_object_get_user_data(GTK_OBJECT(menuitem)));
(g_object_get_data(G_OBJECT(menuitem), MENU_VAL_ID));
}
static void prefs_account_protocol_set_optmenu(PrefParam *pparam)
@ -2461,7 +2471,7 @@ static void prefs_account_smtp_auth_type_set_data_from_optmenu(PrefParam *pparam
menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(*pparam->widget));
menuitem = gtk_menu_get_active(GTK_MENU(menu));
*((RecvProtocol *)pparam->data) = GPOINTER_TO_INT
(gtk_object_get_user_data(GTK_OBJECT(menuitem)));
(g_object_get_data(G_OBJECT(menuitem), MENU_VAL_ID));
}
static void prefs_account_smtp_auth_type_set_optmenu(PrefParam *pparam)
@ -2496,7 +2506,7 @@ static void prefs_account_protocol_activated(GtkMenuItem *menuitem)
RecvProtocol protocol;
protocol = GPOINTER_TO_INT
(gtk_object_get_user_data(GTK_OBJECT(menuitem)));
(g_object_get_data(G_OBJECT(menuitem), MENU_VAL_ID));
switch(protocol) {
case A_NNTP:

View file

@ -84,9 +84,9 @@ static void prefs_actions_row_move (GtkCList *clist,
static gint prefs_actions_deleted (GtkWidget *widget,
GdkEventAny *event,
gpointer *data);
static void prefs_actions_key_pressed (GtkWidget *widget,
GdkEventKey *event,
gpointer data);
static gboolean prefs_actions_key_pressed(GtkWidget *widget,
GdkEventKey *event,
gpointer data);
static void prefs_actions_cancel (GtkWidget *w,
gpointer data);
static void prefs_actions_ok (GtkWidget *w,
@ -146,10 +146,10 @@ static void prefs_actions_create(MainWindow *mainwin)
debug_print("Creating actions configuration window...\n");
window = gtk_window_new (GTK_WINDOW_DIALOG);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width(GTK_CONTAINER (window), 8);
gtk_window_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_window_set_policy(GTK_WINDOW(window), FALSE, TRUE, TRUE);
gtk_window_set_default_size(GTK_WINDOW(window), 400, -1);
@ -165,15 +165,15 @@ static void prefs_actions_create(MainWindow *mainwin)
gtk_widget_grab_default(ok_btn);
gtk_window_set_title(GTK_WINDOW(window), _("Actions configuration"));
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(prefs_actions_deleted), NULL);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(prefs_actions_key_pressed), NULL);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(prefs_actions_deleted), NULL);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(prefs_actions_key_pressed), NULL);
MANAGE_WINDOW_SIGNALS_CONNECT(window);
gtk_signal_connect(GTK_OBJECT(ok_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_actions_ok), mainwin);
gtk_signal_connect(GTK_OBJECT(cancel_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_actions_cancel), NULL);
g_signal_connect(G_OBJECT(ok_btn), "clicked",
G_CALLBACK(prefs_actions_ok), mainwin);
g_signal_connect(G_OBJECT(cancel_btn), "clicked",
G_CALLBACK(prefs_actions_cancel), NULL);
vbox1 = gtk_vbox_new(FALSE, 8);
gtk_widget_show(vbox1);
@ -212,7 +212,7 @@ static void prefs_actions_create(MainWindow *mainwin)
arrow = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_OUT);
gtk_widget_show(arrow);
gtk_box_pack_start(GTK_BOX(reg_hbox), arrow, FALSE, FALSE, 0);
gtk_widget_set_usize(arrow, -1, 16);
gtk_widget_set_size_request(arrow, -1, 16);
btn_hbox = gtk_hbox_new(TRUE, 4);
gtk_widget_show(btn_hbox);
@ -221,27 +221,27 @@ static void prefs_actions_create(MainWindow *mainwin)
reg_btn = gtk_button_new_with_label(_("Add"));
gtk_widget_show(reg_btn);
gtk_box_pack_start(GTK_BOX(btn_hbox), reg_btn, FALSE, TRUE, 0);
gtk_signal_connect(GTK_OBJECT(reg_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_actions_register_cb), NULL);
g_signal_connect(G_OBJECT(reg_btn), "clicked",
G_CALLBACK(prefs_actions_register_cb), NULL);
subst_btn = gtk_button_new_with_label(_(" Replace "));
gtk_widget_show(subst_btn);
gtk_box_pack_start(GTK_BOX(btn_hbox), subst_btn, FALSE, TRUE, 0);
gtk_signal_connect(GTK_OBJECT(subst_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_actions_substitute_cb),
NULL);
g_signal_connect(G_OBJECT(subst_btn), "clicked",
G_CALLBACK(prefs_actions_substitute_cb),
NULL);
del_btn = gtk_button_new_with_label(_("Delete"));
gtk_widget_show(del_btn);
gtk_box_pack_start(GTK_BOX(btn_hbox), del_btn, FALSE, TRUE, 0);
gtk_signal_connect(GTK_OBJECT(del_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_actions_delete_cb), NULL);
g_signal_connect(G_OBJECT(del_btn), "clicked",
G_CALLBACK(prefs_actions_delete_cb), NULL);
help_button = gtk_button_new_with_label(_(" Syntax help "));
gtk_widget_show(help_button);
gtk_box_pack_end(GTK_BOX(reg_hbox), help_button, FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(help_button), "clicked",
GTK_SIGNAL_FUNC(prefs_actions_help_cb), NULL);
g_signal_connect(G_OBJECT(help_button), "clicked",
G_CALLBACK(prefs_actions_help_cb), NULL);
cond_hbox = gtk_hbox_new(FALSE, 8);
gtk_widget_show(cond_hbox);
@ -249,7 +249,7 @@ static void prefs_actions_create(MainWindow *mainwin)
cond_scrolledwin = gtk_scrolled_window_new(NULL, NULL);
gtk_widget_show(cond_scrolledwin);
gtk_widget_set_usize(cond_scrolledwin, -1, 150);
gtk_widget_set_size_request(cond_scrolledwin, -1, 150);
gtk_box_pack_start(GTK_BOX(cond_hbox), cond_scrolledwin,
TRUE, TRUE, 0);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (cond_scrolledwin),
@ -265,11 +265,11 @@ static void prefs_actions_create(MainWindow *mainwin)
GTK_SELECTION_BROWSE);
GTK_WIDGET_UNSET_FLAGS(GTK_CLIST(cond_clist)->column[0].button,
GTK_CAN_FOCUS);
gtk_signal_connect(GTK_OBJECT(cond_clist), "select_row",
GTK_SIGNAL_FUNC(prefs_actions_select), NULL);
gtk_signal_connect_after(GTK_OBJECT(cond_clist), "row_move",
GTK_SIGNAL_FUNC(prefs_actions_row_move),
NULL);
g_signal_connect(G_OBJECT(cond_clist), "select_row",
G_CALLBACK(prefs_actions_select), NULL);
g_signal_connect_after(G_OBJECT(cond_clist), "row_move",
G_CALLBACK(prefs_actions_row_move),
NULL);
btn_vbox = gtk_vbox_new(FALSE, 8);
gtk_widget_show(btn_vbox);
@ -278,14 +278,14 @@ static void prefs_actions_create(MainWindow *mainwin)
up_btn = gtk_button_new_with_label(_("Up"));
gtk_widget_show(up_btn);
gtk_box_pack_start(GTK_BOX(btn_vbox), up_btn, FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(up_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_actions_up), NULL);
g_signal_connect(G_OBJECT(up_btn), "clicked",
G_CALLBACK(prefs_actions_up), NULL);
down_btn = gtk_button_new_with_label(_("Down"));
gtk_widget_show(down_btn);
gtk_box_pack_start(GTK_BOX(btn_vbox), down_btn, FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(down_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_actions_down), NULL);
g_signal_connect(G_OBJECT(down_btn), "clicked",
G_CALLBACK(prefs_actions_down), NULL);
gtk_widget_show(window);
@ -324,13 +324,25 @@ void prefs_actions_read_config(void)
}
while (fgets(buf, sizeof(buf), fp) != NULL) {
g_strchomp(buf);
act = strstr(buf, ": ");
const gchar *src_codeset = conv_get_current_charset_str();
const gchar *dest_codeset = CS_UTF_8;
gchar *tmp;
tmp = conv_codeset_strdup(buf, src_codeset, dest_codeset);
if (!tmp) {
g_warning("Faild to convert character set of action configuration\n");
tmp = g_strdup(buf);
}
g_strchomp(tmp);
act = strstr(tmp, ": ");
if (act && act[2] &&
action_get_type(&act[2]) != ACTION_ERROR)
prefs_common.actions_list =
g_slist_append(prefs_common.actions_list,
g_strdup(buf));
tmp);
else
g_free(tmp);
}
fclose(fp);
}
@ -351,7 +363,17 @@ void prefs_actions_write_config(void)
}
for (cur = prefs_common.actions_list; cur != NULL; cur = cur->next) {
gchar *act = (gchar *)cur->data;
gchar *tmp = (gchar *)cur->data;
const gchar *src_codeset = CS_UTF_8;
const gchar *dest_codeset = conv_get_current_charset_str();
gchar *act;
act = conv_codeset_strdup(tmp, src_codeset, dest_codeset);
if (!act) {
g_warning("Faild to convert character set of action configuration\n");
act = g_strdup(act);
}
if (fputs(act, pfile->fp) == EOF ||
fputc('\n', pfile->fp) == EOF) {
FILE_OP_ERROR(rcpath, "fputs || fputc");
@ -359,6 +381,7 @@ void prefs_actions_write_config(void)
g_free(rcpath);
return;
}
g_free(act);
}
g_free(rcpath);
@ -416,7 +439,7 @@ static void prefs_actions_set_list(void)
static gint prefs_actions_clist_set_row(gint row)
{
GtkCList *clist = GTK_CLIST(actions.actions_clist);
gchar *entry_text;
const gchar *entry_text;
gint len;
gchar action[PREFSBUFSIZE];
gchar *buf[1];
@ -603,11 +626,12 @@ static gint prefs_actions_deleted(GtkWidget *widget, GdkEventAny *event,
return TRUE;
}
static void prefs_actions_key_pressed(GtkWidget *widget, GdkEventKey *event,
gpointer data)
static gboolean prefs_actions_key_pressed(GtkWidget *widget, GdkEventKey *event,
gpointer data)
{
if (event && event->keyval == GDK_Escape)
prefs_actions_cancel(widget, data);
return FALSE;
}
static void prefs_actions_cancel(GtkWidget *w, gpointer data)

File diff suppressed because it is too large Load diff

View file

@ -125,11 +125,20 @@ struct _PrefsCommon
#endif
/* Display */
/* obsolete fonts */
gchar *widgetfont_gtk1;
gchar *textfont_gtk1;
gchar *normalfont_gtk1;
gchar *boldfont_gtk1;
gchar *smallfont_gtk1;
/* new fonts */
gchar *widgetfont;
gchar *textfont;
gchar *normalfont;
gchar *boldfont;
gchar *smallfont;
gchar *titlefont;
gboolean trans_hdr;
gboolean display_folder_unread;

View file

@ -81,7 +81,7 @@ static void prefs_custom_header_row_moved (GtkCList *clist,
gint dest_row,
gpointer data);
static void prefs_custom_header_key_pressed (GtkWidget *widget,
static gboolean prefs_custom_header_key_pressed (GtkWidget *widget,
GdkEventKey *event,
gpointer data);
static void prefs_custom_header_ok (void);
@ -144,9 +144,9 @@ static void prefs_custom_header_create(void)
debug_print("Creating custom header setting window...\n");
window = gtk_window_new (GTK_WINDOW_DIALOG);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
gtk_window_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
gtk_window_set_modal (GTK_WINDOW (window), TRUE);
gtk_window_set_policy (GTK_WINDOW (window), FALSE, TRUE, FALSE);
@ -162,16 +162,16 @@ static void prefs_custom_header_create(void)
gtk_window_set_title (GTK_WINDOW(window), _("Custom header configuration"));
MANAGE_WINDOW_SIGNALS_CONNECT (window);
gtk_signal_connect (GTK_OBJECT(window), "delete_event",
g_signal_connect (G_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(prefs_custom_header_deleted),
NULL);
gtk_signal_connect (GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(prefs_custom_header_key_pressed),
NULL);
gtk_signal_connect (GTK_OBJECT(ok_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_custom_header_ok), NULL);
gtk_signal_connect (GTK_OBJECT(cancel_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_custom_header_cancel), NULL);
g_signal_connect (G_OBJECT(window), "key_press_event",
G_CALLBACK(prefs_custom_header_key_pressed),
NULL);
g_signal_connect (G_OBJECT(ok_btn), "clicked",
G_CALLBACK(prefs_custom_header_ok), NULL);
g_signal_connect (G_OBJECT(cancel_btn), "clicked",
G_CALLBACK(prefs_custom_header_cancel), NULL);
vbox1 = gtk_vbox_new (FALSE, VSPACING);
gtk_widget_show (vbox1);
@ -197,7 +197,7 @@ static void prefs_custom_header_create(void)
gtk_table_attach (GTK_TABLE (table1), hdr_combo, 0, 1, 1, 2,
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
0, 0, 0);
gtk_widget_set_usize (hdr_combo, 150, -1);
gtk_widget_set_size_request (hdr_combo, 150, -1);
gtkut_combo_set_items (GTK_COMBO (hdr_combo),
"User-Agent", "X-Face", "X-Operating-System",
NULL);
@ -214,7 +214,7 @@ static void prefs_custom_header_create(void)
gtk_table_attach (GTK_TABLE (table1), val_entry, 1, 2, 1, 2,
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
0, 0, 0);
gtk_widget_set_usize (val_entry, 200, -1);
gtk_widget_set_size_request (val_entry, 200, -1);
/* add / delete */
@ -225,7 +225,7 @@ static void prefs_custom_header_create(void)
arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_OUT);
gtk_widget_show (arrow);
gtk_box_pack_start (GTK_BOX (reg_hbox), arrow, FALSE, FALSE, 0);
gtk_widget_set_usize (arrow, -1, 16);
gtk_widget_set_size_request (arrow, -1, 16);
btn_hbox = gtk_hbox_new (TRUE, 4);
gtk_widget_show (btn_hbox);
@ -234,16 +234,16 @@ static void prefs_custom_header_create(void)
add_btn = gtk_button_new_with_label (_("Add"));
gtk_widget_show (add_btn);
gtk_box_pack_start (GTK_BOX (btn_hbox), add_btn, FALSE, TRUE, 0);
gtk_signal_connect (GTK_OBJECT (add_btn), "clicked",
GTK_SIGNAL_FUNC (prefs_custom_header_add_cb),
NULL);
g_signal_connect (G_OBJECT (add_btn), "clicked",
G_CALLBACK (prefs_custom_header_add_cb),
NULL);
del_btn = gtk_button_new_with_label (_(" Delete "));
gtk_widget_show (del_btn);
gtk_box_pack_start (GTK_BOX (btn_hbox), del_btn, FALSE, TRUE, 0);
gtk_signal_connect (GTK_OBJECT (del_btn), "clicked",
GTK_SIGNAL_FUNC (prefs_custom_header_delete_cb),
NULL);
g_signal_connect (G_OBJECT (del_btn), "clicked",
G_CALLBACK (prefs_custom_header_delete_cb),
NULL);
ch_hbox = gtk_hbox_new (FALSE, 8);
@ -251,7 +251,7 @@ static void prefs_custom_header_create(void)
gtk_box_pack_start (GTK_BOX (vbox1), ch_hbox, TRUE, TRUE, 0);
ch_scrolledwin = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_set_usize (ch_scrolledwin, -1, 200);
gtk_widget_set_size_request (ch_scrolledwin, -1, 200);
gtk_widget_show (ch_scrolledwin);
gtk_box_pack_start (GTK_BOX (ch_hbox), ch_scrolledwin, TRUE, TRUE, 0);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (ch_scrolledwin),
@ -269,12 +269,12 @@ static void prefs_custom_header_create(void)
gtk_clist_set_use_drag_icons (GTK_CLIST (customhdr_clist), FALSE);
GTK_WIDGET_UNSET_FLAGS (GTK_CLIST (customhdr_clist)->column[0].button,
GTK_CAN_FOCUS);
gtk_signal_connect (GTK_OBJECT (customhdr_clist), "select_row",
GTK_SIGNAL_FUNC (prefs_custom_header_select),
NULL);
gtk_signal_connect_after
(GTK_OBJECT (customhdr_clist), "row_move",
GTK_SIGNAL_FUNC (prefs_custom_header_row_moved), NULL);
g_signal_connect (G_OBJECT (customhdr_clist), "select_row",
G_CALLBACK (prefs_custom_header_select),
NULL);
g_signal_connect_after
(G_OBJECT (customhdr_clist), "row_move",
G_CALLBACK (prefs_custom_header_row_moved), NULL);
btn_vbox = gtk_vbox_new (FALSE, 8);
gtk_widget_show (btn_vbox);
@ -283,14 +283,14 @@ static void prefs_custom_header_create(void)
up_btn = gtk_button_new_with_label (_("Up"));
gtk_widget_show (up_btn);
gtk_box_pack_start (GTK_BOX (btn_vbox), up_btn, FALSE, FALSE, 0);
gtk_signal_connect (GTK_OBJECT (up_btn), "clicked",
GTK_SIGNAL_FUNC (prefs_custom_header_up), NULL);
g_signal_connect (G_OBJECT (up_btn), "clicked",
G_CALLBACK (prefs_custom_header_up), NULL);
down_btn = gtk_button_new_with_label (_("Down"));
gtk_widget_show (down_btn);
gtk_box_pack_start (GTK_BOX (btn_vbox), down_btn, FALSE, FALSE, 0);
gtk_signal_connect (GTK_OBJECT (down_btn), "clicked",
GTK_SIGNAL_FUNC (prefs_custom_header_down), NULL);
g_signal_connect (G_OBJECT (down_btn), "clicked",
G_CALLBACK (prefs_custom_header_down), NULL);
gtk_widget_show_all(window);
@ -475,7 +475,7 @@ static gint prefs_custom_header_clist_set_row(PrefsAccount *ac, gint row)
{
GtkCList *clist = GTK_CLIST(customhdr.customhdr_clist);
CustomHeader *ch;
gchar *entry_text;
const gchar *entry_text;
gchar *ch_str[1];
entry_text = gtk_entry_get_text(GTK_ENTRY(customhdr.hdr_entry));
@ -597,12 +597,13 @@ static void prefs_custom_header_row_moved(GtkCList *clist, gint source_row,
prefs_custom_header_set_list(cur_ac);
}
static void prefs_custom_header_key_pressed(GtkWidget *widget,
GdkEventKey *event,
gpointer data)
static gboolean prefs_custom_header_key_pressed(GtkWidget *widget,
GdkEventKey *event,
gpointer data)
{
if (event && event->keyval == GDK_Escape)
prefs_custom_header_cancel();
return FALSE;
}
static void prefs_custom_header_ok(void)

View file

@ -76,9 +76,9 @@ static void prefs_display_header_row_moved (GtkCList *clist,
gint dest_row,
gpointer data);
static void prefs_display_header_key_pressed (GtkWidget *widget,
GdkEventKey *event,
gpointer data);
static gboolean prefs_display_header_key_pressed (GtkWidget *widget,
GdkEventKey *event,
gpointer data);
static void prefs_display_header_ok (void);
static void prefs_display_header_cancel (void);
static gint prefs_display_header_deleted (GtkWidget *widget,
@ -177,9 +177,9 @@ static void prefs_display_header_create(void)
debug_print("Creating display header setting window...\n");
window = gtk_window_new (GTK_WINDOW_DIALOG);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
gtk_window_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
gtk_window_set_modal (GTK_WINDOW (window), TRUE);
gtk_window_set_policy (GTK_WINDOW (window), FALSE, TRUE, FALSE);
@ -200,18 +200,18 @@ static void prefs_display_header_create(void)
gtk_window_set_title (GTK_WINDOW(window),
_("Displayed header configuration"));
MANAGE_WINDOW_SIGNALS_CONNECT(window);
gtk_signal_connect (GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(prefs_display_header_deleted),
NULL);
gtk_signal_connect (GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(prefs_display_header_key_pressed),
NULL);
gtk_signal_connect (GTK_OBJECT(ok_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_display_header_ok),
NULL);
gtk_signal_connect (GTK_OBJECT(cancel_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_display_header_cancel),
NULL);
g_signal_connect (G_OBJECT(window), "delete_event",
G_CALLBACK(prefs_display_header_deleted),
NULL);
g_signal_connect (G_OBJECT(window), "key_press_event",
G_CALLBACK(prefs_display_header_key_pressed),
NULL);
g_signal_connect (G_OBJECT(ok_btn), "clicked",
G_CALLBACK(prefs_display_header_ok),
NULL);
g_signal_connect (G_OBJECT(cancel_btn), "clicked",
G_CALLBACK(prefs_display_header_cancel),
NULL);
vbox1 = gtk_vbox_new (FALSE, VSPACING);
gtk_widget_show (vbox1);
@ -229,7 +229,7 @@ static void prefs_display_header_create(void)
hdr_combo = gtk_combo_new ();
gtk_widget_show (hdr_combo);
gtk_box_pack_start (GTK_BOX (hbox1), hdr_combo, TRUE, TRUE, 0);
gtk_widget_set_usize (hdr_combo, 150, -1);
gtk_widget_set_size_request (hdr_combo, 150, -1);
gtkut_combo_set_items (GTK_COMBO (hdr_combo),
"From", "To", "Cc", "Subject", "Date",
"Reply-To", "Sender", "User-Agent", "X-Mailer",
@ -246,7 +246,7 @@ static void prefs_display_header_create(void)
gtk_box_pack_start (GTK_BOX (clist_hbox), clist_hbox1, TRUE, TRUE, 0);
clist_scrolledwin = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_set_usize (clist_scrolledwin, 200, 210);
gtk_widget_set_size_request (clist_scrolledwin, 200, 210);
gtk_widget_show (clist_scrolledwin);
gtk_box_pack_start (GTK_BOX (clist_hbox1), clist_scrolledwin,
TRUE, TRUE, 0);
@ -264,9 +264,9 @@ static void prefs_display_header_create(void)
gtk_clist_set_use_drag_icons (GTK_CLIST (headers_clist), FALSE);
GTK_WIDGET_UNSET_FLAGS (GTK_CLIST (headers_clist)->column[0].button,
GTK_CAN_FOCUS);
gtk_signal_connect_after
(GTK_OBJECT (headers_clist), "row_move",
GTK_SIGNAL_FUNC (prefs_display_header_row_moved), NULL);
g_signal_connect_after
(G_OBJECT (headers_clist), "row_move",
G_CALLBACK (prefs_display_header_row_moved), NULL);
btn_vbox = gtk_vbox_new (FALSE, 8);
gtk_widget_show (btn_vbox);
@ -275,27 +275,27 @@ static void prefs_display_header_create(void)
reg_btn = gtk_button_new_with_label (_("Add"));
gtk_widget_show (reg_btn);
gtk_box_pack_start (GTK_BOX (btn_vbox), reg_btn, FALSE, TRUE, 0);
gtk_signal_connect (GTK_OBJECT (reg_btn), "clicked",
GTK_SIGNAL_FUNC (prefs_display_header_register_cb),
FALSE);
g_signal_connect (G_OBJECT (reg_btn), "clicked",
G_CALLBACK (prefs_display_header_register_cb),
FALSE);
del_btn = gtk_button_new_with_label (_("Delete"));
gtk_widget_show (del_btn);
gtk_box_pack_start (GTK_BOX (btn_vbox), del_btn, FALSE, TRUE, 0);
gtk_signal_connect (GTK_OBJECT (del_btn), "clicked",
GTK_SIGNAL_FUNC (prefs_display_header_delete_cb),
headers_clist);
g_signal_connect (G_OBJECT (del_btn), "clicked",
G_CALLBACK (prefs_display_header_delete_cb),
headers_clist);
up_btn = gtk_button_new_with_label (_("Up"));
gtk_widget_show (up_btn);
gtk_box_pack_start (GTK_BOX (btn_vbox), up_btn, FALSE, FALSE, 0);
gtk_signal_connect (GTK_OBJECT (up_btn), "clicked",
GTK_SIGNAL_FUNC (prefs_display_header_up), NULL);
g_signal_connect (G_OBJECT (up_btn), "clicked",
G_CALLBACK (prefs_display_header_up), NULL);
down_btn = gtk_button_new_with_label (_("Down"));
gtk_widget_show (down_btn);
gtk_box_pack_start (GTK_BOX (btn_vbox), down_btn, FALSE, FALSE, 0);
gtk_signal_connect (GTK_OBJECT (down_btn), "clicked",
GTK_SIGNAL_FUNC (prefs_display_header_down), NULL);
g_signal_connect (G_OBJECT (down_btn), "clicked",
G_CALLBACK (prefs_display_header_down), NULL);
/* hidden headers list */
@ -304,7 +304,7 @@ static void prefs_display_header_create(void)
gtk_box_pack_start (GTK_BOX (clist_hbox), clist_hbox2, TRUE, TRUE, 0);
clist_scrolledwin = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_set_usize (clist_scrolledwin, 200, 210);
gtk_widget_set_size_request (clist_scrolledwin, 200, 210);
gtk_widget_show (clist_scrolledwin);
gtk_box_pack_start (GTK_BOX (clist_hbox2), clist_scrolledwin,
TRUE, TRUE, 0);
@ -330,15 +330,15 @@ static void prefs_display_header_create(void)
reg_btn = gtk_button_new_with_label (_("Add"));
gtk_widget_show (reg_btn);
gtk_box_pack_start (GTK_BOX (btn_vbox), reg_btn, FALSE, TRUE, 0);
gtk_signal_connect (GTK_OBJECT (reg_btn), "clicked",
GTK_SIGNAL_FUNC
g_signal_connect (G_OBJECT (reg_btn), "clicked",
G_CALLBACK
(prefs_display_header_register_cb),
(void *) TRUE);
del_btn = gtk_button_new_with_label (_("Delete"));
gtk_widget_show (del_btn);
gtk_box_pack_start (GTK_BOX (btn_vbox), del_btn, FALSE, TRUE, 0);
gtk_signal_connect (GTK_OBJECT (del_btn), "clicked",
GTK_SIGNAL_FUNC (prefs_display_header_delete_cb),
g_signal_connect (G_OBJECT (del_btn), "clicked",
G_CALLBACK (prefs_display_header_delete_cb),
(void *) hidden_headers_clist);
PACK_CHECK_BUTTON (btn_hbox, checkbtn_other_headers,
@ -521,7 +521,7 @@ static gint prefs_display_header_clist_set_row(gboolean hidden)
{
GtkCList *clist;
DisplayHeaderProp *dp;
gchar *entry_text;
const gchar *entry_text;
gchar *dp_str[1];
gint row;
@ -609,12 +609,13 @@ static void prefs_display_header_row_moved(GtkCList *clist, gint source_row,
prefs_display_header_set_list();
}
static void prefs_display_header_key_pressed(GtkWidget *widget,
static gboolean prefs_display_header_key_pressed(GtkWidget *widget,
GdkEventKey *event,
gpointer data)
{
if (event && event->keyval == GDK_Escape)
prefs_display_header_cancel();
return FALSE;
}
static void prefs_display_header_ok(void)

View file

@ -199,7 +199,7 @@ static void prefs_filtering_create(void)
debug_print("Creating filtering configuration window...\n");
window = gtk_window_new (GTK_WINDOW_DIALOG);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
gtk_window_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
gtk_window_set_modal (GTK_WINDOW (window), TRUE);
@ -706,7 +706,7 @@ static void prefs_filtering_condition_define_done(MatcherList * matchers)
static void prefs_filtering_condition_define(void)
{
gchar * cond_str;
const gchar * cond_str;
MatcherList * matchers = NULL;
cond_str = gtk_entry_get_text(GTK_ENTRY(filtering.cond_entry));
@ -740,7 +740,7 @@ static void prefs_filtering_action_define_done(GSList * action_list)
static void prefs_filtering_action_define(void)
{
gchar * action_str;
const gchar * action_str;
GSList * action_list = NULL;
action_str = gtk_entry_get_text(GTK_ENTRY(filtering.action_entry));
@ -769,8 +769,8 @@ static void prefs_filtering_action_define(void)
static FilteringProp * prefs_filtering_dialog_to_filtering(gboolean alert)
{
MatcherList * cond;
gchar * cond_str;
gchar * action_str;
const gchar * cond_str;
const gchar * action_str;
FilteringProp * prop;
GSList * action_list;

View file

@ -254,7 +254,7 @@ static void prefs_filtering_action_create(void)
debug_print("Creating matcher configuration window...\n");
window = gtk_window_new(GTK_WINDOW_DIALOG);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width(GTK_CONTAINER(window), 8);
gtk_window_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
@ -713,7 +713,7 @@ static FilteringAction * prefs_filtering_action_dialog_to_action(gboolean alert)
gint action_type;
gint list_id;
gint account_id;
gchar * destination;
const gchar * destination;
gint labelcolor = 0;
FilteringAction * action;

View file

@ -181,14 +181,14 @@ void prefs_folder_item_general_create_widget_func(PrefsPage * _page,
rowcount, rowcount + 1);
folder_color_btn = gtk_button_new_with_label("");
gtk_widget_set_usize(folder_color_btn, 36, 26);
gtk_widget_set_size_request(folder_color_btn, 36, 26);
gtk_box_pack_start (GTK_BOX(hbox), folder_color_btn, FALSE, FALSE, 0);
page->folder_color = item->prefs->color;
gtk_signal_connect(GTK_OBJECT(folder_color_btn), "clicked",
GTK_SIGNAL_FUNC(folder_color_set_dialog),
page);
g_signal_connect(G_OBJECT(folder_color_btn), "clicked",
G_CALLBACK(folder_color_set_dialog),
page);
gtkut_set_widget_bgcolor_rgb(folder_color_btn, item->prefs->color);
@ -489,7 +489,7 @@ void prefs_folder_item_compose_save_func(PrefsPage *_page)
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_enable_default_account));
menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(page->optmenu_default_account));
menuitem = gtk_menu_get_active(GTK_MENU(menu));
prefs->default_account = GPOINTER_TO_INT(gtk_object_get_user_data(GTK_OBJECT(menuitem)));
prefs->default_account = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(menuitem), MENU_VAL_ID));
#if USE_ASPELL
prefs->enable_default_dictionary =

View file

@ -36,6 +36,7 @@
#include "gtkutils.h"
#include "passcrypt.h"
#include "base64.h"
#include "codeconv.h"
#define CL(x) (((gulong) (x) >> (gulong) 8) & 0xFFUL)
#define RGB_FROM_GDK_COLOR(c) \
@ -116,10 +117,23 @@ void prefs_config_parse_one_line(PrefParam *param, const gchar *buf)
switch (param[i].type) {
case P_STRING:
{
#warning FIXME_GTK2
gchar *tmp;
tmp = *value ?
conv_codeset_strdup(value,
conv_get_current_charset_str(),
CS_UTF_8)
: g_strdup("");
if (!tmp) {
g_warning("faild to convert character set.");
tmp = g_strdup(value);
}
g_free(*((gchar **)param[i].data));
*((gchar **)param[i].data) =
*value ? g_strdup(value) : NULL;
*((gchar **)param[i].data) = tmp;
break;
}
case P_INT:
*((gint *)param[i].data) =
(gint)atoi(value);
@ -256,10 +270,24 @@ gint prefs_write_param(PrefParam *param, FILE *fp)
for (i = 0; param[i].name != NULL; i++) {
switch (param[i].type) {
case P_STRING:
{
#warning FIXME_GTK2
gchar *tmp = NULL;
if (*((gchar **)param[i].data)) {
tmp = conv_codeset_strdup(*((gchar **)param[i].data),
CS_UTF_8,
conv_get_current_charset_str());
if (!tmp)
tmp = g_strdup(*((gchar **)param[i].data));
}
g_snprintf(buf, sizeof(buf), "%s=%s\n", param[i].name,
*((gchar **)param[i].data) ?
*((gchar **)param[i].data) : "");
tmp ? tmp : "");
g_free(tmp);
break;
}
case P_INT:
g_snprintf(buf, sizeof(buf), "%s=%d\n", param[i].name,
*((gint *)param[i].data));
@ -326,14 +354,27 @@ void prefs_set_default(PrefParam *param)
if (!param[i].data) continue;
switch (param[i].type) {
#warning FIXME_GTK2
case P_STRING:
case P_PASSWORD:
g_free(*((gchar **)param[i].data));
if (param[i].defval != NULL) {
if (!strncasecmp(param[i].defval, "ENV_", 4))
*((gchar **)param[i].data) =
g_strdup(g_getenv(param[i].defval + 4));
else if (param[i].defval[0] == '~')
if (!strncasecmp(param[i].defval, "ENV_", 4)) {
const gchar *envstr;
gchar *tmp;
envstr = g_getenv(param[i].defval + 4);
tmp = envstr && *envstr ?
conv_codeset_strdup(envstr,
conv_get_current_charset_str(),
CS_UTF_8)
: g_strdup("");
if (!tmp) {
g_warning("faild to convert character set.");
tmp = g_strdup(envstr);
}
*((gchar **)param[i].data) = tmp;
} else if (param[i].defval[0] == '~')
*((gchar **)param[i].data) =
g_strconcat(get_home_dir(),
param[i].defval + 1,
@ -426,7 +467,7 @@ void prefs_dialog_create(PrefsDialog *dialog)
g_return_if_fail(dialog != NULL);
window = gtk_window_new (GTK_WINDOW_DIALOG);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
gtk_window_position (GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal (GTK_WINDOW (window), TRUE);
@ -516,6 +557,7 @@ void prefs_set_dialog_to_default(PrefParam *param)
switch (tmpparam.type) {
case P_STRING:
case P_PASSWORD:
#warning FIXME_GTK2
if (tmpparam.defval) {
if (!strncasecmp(tmpparam.defval, "ENV_", 4)) {
str_data = g_strdup(g_getenv(param[i].defval + 4));
@ -576,7 +618,8 @@ void prefs_set_dialog_to_default(PrefParam *param)
void prefs_set_data_from_entry(PrefParam *pparam)
{
gchar **str, *entry_str;
gchar **str;
const gchar *entry_str;
g_return_if_fail(*pparam->widget != NULL);
@ -631,7 +674,7 @@ void prefs_set_entry(PrefParam *pparam)
void prefs_set_data_from_text(PrefParam *pparam)
{
gchar **str;
gchar *text, *tp;
gchar *text = NULL, *tp = NULL;
gchar *tmp, *tmpp;
g_return_if_fail(*pparam->widget != NULL);
@ -641,8 +684,20 @@ void prefs_set_data_from_text(PrefParam *pparam)
case P_PASSWORD:
str = (gchar **)pparam->data;
g_free(*str);
tp = text = gtk_editable_get_chars
(GTK_EDITABLE(*pparam->widget), 0, -1);
if (GTK_IS_EDITABLE(*pparam->widget)) { /* need? */
tp = text = gtk_editable_get_chars
(GTK_EDITABLE(*pparam->widget), 0, -1);
} else if (GTK_IS_TEXT_VIEW(*pparam->widget)) {
GtkTextView *textview = GTK_TEXT_VIEW(*pparam->widget);
GtkTextBuffer *buffer = gtk_text_view_get_buffer(textview);
GtkTextIter start, end;
gtk_text_buffer_get_start_iter(buffer, &start);
gtk_text_buffer_get_iter_at_offset(buffer, &end, -1);
tp = text = gtk_text_buffer_get_text(buffer, &start, &end, FALSE);
}
g_return_if_fail (tp && text);
if (text[0] == '\0') {
*str = NULL;
g_free(text);
@ -673,7 +728,9 @@ void prefs_set_text(PrefParam *pparam)
{
gchar *buf, *sp, *bufp;
gchar **str;
GtkText *text;
GtkTextView *text;
GtkTextBuffer *buffer;
GtkTextIter iter;
g_return_if_fail(*pparam->widget != NULL);
@ -698,14 +755,14 @@ void prefs_set_text(PrefParam *pparam)
} else
buf = "";
text = GTK_TEXT(*pparam->widget);
gtk_text_set_point(text, 0);
gtk_text_forward_delete(text, gtk_text_get_length(text));
gtk_text_set_point(text, 0);
gtk_text_insert(text, NULL, NULL, NULL, buf, -1);
text = GTK_TEXT_VIEW(*pparam->widget);
buffer = gtk_text_view_get_buffer(text);
gtk_text_buffer_set_text(buffer, "\0", -1);
gtk_text_buffer_get_start_iter(buffer, &iter);
gtk_text_buffer_insert(buffer, &iter, buf, -1);
break;
default:
g_warning("Invalid PrefType for GtkText widget: %d\n",
g_warning("Invalid PrefType for GtkTextView widget: %d\n",
pparam->type);
}
}

View file

@ -357,7 +357,7 @@ static void prefs_matcher_create(void)
debug_print("Creating matcher configuration window...\n");
window = gtk_window_new(GTK_WINDOW_DIALOG);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width(GTK_CONTAINER(window), 8);
gtk_window_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
@ -1049,10 +1049,10 @@ static MatcherProp *prefs_matcher_dialog_to_matcher(void)
gint value_criteria;
gboolean use_regexp;
gboolean case_sensitive;
gchar *header;
gchar *expr;
const gchar *header;
const gchar *expr;
gint value;
gchar *value_str;
const gchar *value_str;
value_criteria = get_sel_from_list(GTK_LIST(matcher.criteria_list));

View file

@ -183,7 +183,7 @@ static void prefs_scoring_create(void)
debug_print("Creating scoring configuration window...\n");
window = gtk_window_new (GTK_WINDOW_DIALOG);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
gtk_window_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
gtk_window_set_modal (GTK_WINDOW (window), TRUE);
@ -508,7 +508,7 @@ static void prefs_scoring_condition_define_done(MatcherList * matchers)
static void prefs_scoring_condition_define(void)
{
gchar * cond_str;
const gchar * cond_str;
MatcherList * matchers = NULL;
cond_str = gtk_entry_get_text(GTK_ENTRY(scoring.cond_entry));
@ -531,8 +531,8 @@ static void prefs_scoring_condition_define(void)
static void prefs_scoring_register_cb(void)
{
MatcherList * cond;
gchar * cond_str;
gchar * score_str;
const gchar * cond_str;
const gchar * score_str;
ScoringProp * prop;
gint score;
@ -570,8 +570,8 @@ static void prefs_scoring_substitute_cb(void)
GtkCList *clist = GTK_CLIST(scoring.cond_clist);
gint row;
MatcherList * cond;
gchar * cond_str;
gchar * score_str;
const gchar * cond_str;
const gchar * score_str;
ScoringProp * prop;
gint score;
@ -722,8 +722,8 @@ static void prefs_scoring_key_pressed(GtkWidget *widget, GdkEventKey *event,
static void prefs_scoring_ok(void)
{
MatcherList * cond;
gchar * cond_str;
gchar * score_str;
const gchar * cond_str;
const gchar * score_str;
gchar * scoring_str;
gchar * str;
ScoringProp * prop;

View file

@ -109,7 +109,7 @@ static void prefs_summary_column_cancel (void);
static gint prefs_summary_column_delete_event (GtkWidget *widget,
GdkEventAny *event,
gpointer data);
static void prefs_summary_column_key_pressed (GtkWidget *widget,
static gboolean prefs_summary_column_key_pressed(GtkWidget *widget,
GdkEventKey *event,
gpointer data);
@ -169,19 +169,19 @@ static void prefs_summary_column_create(void)
debug_print("Creating summary column setting window...\n");
window = gtk_window_new(GTK_WINDOW_DIALOG);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width(GTK_CONTAINER(window), 8);
gtk_window_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, FALSE);
gtk_window_set_title(GTK_WINDOW(window),
_("Displayed items configuration"));
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(prefs_summary_column_delete_event),
NULL);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(prefs_summary_column_key_pressed),
NULL);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(prefs_summary_column_delete_event),
NULL);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(prefs_summary_column_key_pressed),
NULL);
vbox = gtk_vbox_new(FALSE, 6);
gtk_widget_show(vbox);
@ -212,7 +212,7 @@ static void prefs_summary_column_create(void)
gtk_box_pack_start(GTK_BOX(hbox1), clist_hbox, TRUE, TRUE, 0);
scrolledwin = gtk_scrolled_window_new(NULL, NULL);
gtk_widget_set_usize(scrolledwin, 180, 210);
gtk_widget_set_size_request(scrolledwin, 180, 210);
gtk_widget_show(scrolledwin);
gtk_box_pack_start(GTK_BOX(clist_hbox), scrolledwin, TRUE, TRUE, 0);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),
@ -245,17 +245,17 @@ static void prefs_summary_column_create(void)
gtk_widget_show(remove_btn);
gtk_box_pack_start(GTK_BOX(btn_vbox1), remove_btn, FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(add_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_summary_column_add), NULL);
gtk_signal_connect(GTK_OBJECT(remove_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_summary_column_remove), NULL);
g_signal_connect(G_OBJECT(add_btn), "clicked",
G_CALLBACK(prefs_summary_column_add), NULL);
g_signal_connect(G_OBJECT(remove_btn), "clicked",
G_CALLBACK(prefs_summary_column_remove), NULL);
clist_hbox = gtk_hbox_new(FALSE, 8);
gtk_widget_show(clist_hbox);
gtk_box_pack_start(GTK_BOX(hbox1), clist_hbox, TRUE, TRUE, 0);
scrolledwin = gtk_scrolled_window_new(NULL, NULL);
gtk_widget_set_usize(scrolledwin, 180, 210);
gtk_widget_set_size_request(scrolledwin, 180, 210);
gtk_widget_show(scrolledwin);
gtk_box_pack_start(GTK_BOX(clist_hbox), scrolledwin, TRUE, TRUE, 0);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),
@ -290,10 +290,10 @@ static void prefs_summary_column_create(void)
gtk_widget_show(down_btn);
gtk_box_pack_start(GTK_BOX(btn_vbox1), down_btn, FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(up_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_summary_column_up), NULL);
gtk_signal_connect(GTK_OBJECT(down_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_summary_column_down), NULL);
g_signal_connect(G_OBJECT(up_btn), "clicked",
G_CALLBACK(prefs_summary_column_up), NULL);
g_signal_connect(G_OBJECT(down_btn), "clicked",
G_CALLBACK(prefs_summary_column_down), NULL);
btn_hbox = gtk_hbox_new(FALSE, 8);
gtk_widget_show(btn_hbox);
@ -306,9 +306,9 @@ static void prefs_summary_column_create(void)
default_btn = gtk_button_new_with_label(_(" Use default "));
gtk_widget_show(default_btn);
gtk_box_pack_start(GTK_BOX(btn_vbox), default_btn, TRUE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(default_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_summary_column_set_to_default),
NULL);
g_signal_connect(G_OBJECT(default_btn), "clicked",
G_CALLBACK(prefs_summary_column_set_to_default),
NULL);
gtkut_button_set_create(&confirm_area, &ok_btn, _("OK"),
&cancel_btn, _("Cancel"), NULL, NULL);
@ -316,10 +316,10 @@ static void prefs_summary_column_create(void)
gtk_box_pack_end(GTK_BOX(btn_hbox), confirm_area, FALSE, FALSE, 0);
gtk_widget_grab_default(ok_btn);
gtk_signal_connect(GTK_OBJECT(ok_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_summary_column_ok), NULL);
gtk_signal_connect(GTK_OBJECT(cancel_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_summary_column_cancel), NULL);
g_signal_connect(G_OBJECT(ok_btn), "clicked",
G_CALLBACK(prefs_summary_column_ok), NULL);
g_signal_connect(G_OBJECT(cancel_btn), "clicked",
G_CALLBACK(prefs_summary_column_cancel), NULL);
summary_col.window = window;
summary_col.stock_clist = stock_clist;
@ -534,10 +534,11 @@ static gint prefs_summary_column_delete_event(GtkWidget *widget,
return TRUE;
}
static void prefs_summary_column_key_pressed(GtkWidget *widget,
GdkEventKey *event,
gpointer data)
static gboolean prefs_summary_column_key_pressed(GtkWidget *widget,
GdkEventKey *event,
gpointer data)
{
if (event && event->keyval == GDK_Escape)
summary_col.finished = TRUE;
return FALSE;
}

View file

@ -62,7 +62,7 @@ static GSList *prefs_template_get_list (void);
static gint prefs_template_deleted_cb (GtkWidget *widget,
GdkEventAny *event,
gpointer data);
static void prefs_template_key_pressed_cb (GtkWidget *widget,
static gboolean prefs_template_key_pressed_cb (GtkWidget *widget,
GdkEventKey *event,
gpointer data);
static void prefs_template_cancel_cb (void);
@ -134,8 +134,8 @@ static void prefs_template_window_create(void)
gchar *title[1];
/* main window */
window = gtk_window_new(GTK_WINDOW_DIALOG);
gtk_window_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_window_set_policy(GTK_WINDOW(window), FALSE, TRUE, FALSE);
gtk_window_set_default_size(GTK_WINDOW(window), 400, -1);
@ -186,12 +186,12 @@ static void prefs_template_window_create(void)
GTK_POLICY_ALWAYS);
gtk_box_pack_start(GTK_BOX(vbox1), scroll2, TRUE, TRUE, 0);
text_value = gtk_text_new(NULL, NULL);
text_value = gtk_text_view_new();
gtk_widget_show(text_value);
gtk_widget_set_usize(text_value, -1, 120);
gtk_widget_set_size_request(text_value, -1, 120);
gtk_container_add(GTK_CONTAINER(scroll2), text_value);
gtk_text_set_editable(GTK_TEXT(text_value), TRUE);
gtk_text_set_word_wrap(GTK_TEXT(text_value), TRUE);
gtk_text_view_set_editable(GTK_TEXT_VIEW(text_value), TRUE);
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text_value), GTK_WRAP_WORD);
/* vbox for buttons and templates list */
vbox2 = gtk_vbox_new(FALSE, 6);
@ -207,7 +207,7 @@ static void prefs_template_window_create(void)
arrow1 = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_OUT);
gtk_widget_show(arrow1);
gtk_box_pack_start(GTK_BOX(hbox2), arrow1, FALSE, FALSE, 0);
gtk_widget_set_usize(arrow1, -1, 16);
gtk_widget_set_size_request(arrow1, -1, 16);
hbox3 = gtk_hbox_new(TRUE, 4);
gtk_widget_show(hbox3);
@ -216,27 +216,27 @@ static void prefs_template_window_create(void)
reg_btn = gtk_button_new_with_label(_("Add"));
gtk_widget_show(reg_btn);
gtk_box_pack_start(GTK_BOX(hbox3), reg_btn, FALSE, TRUE, 0);
gtk_signal_connect(GTK_OBJECT (reg_btn), "clicked",
GTK_SIGNAL_FUNC (prefs_template_register_cb), NULL);
g_signal_connect(G_OBJECT (reg_btn), "clicked",
G_CALLBACK (prefs_template_register_cb), NULL);
subst_btn = gtk_button_new_with_label(_(" Replace "));
gtk_widget_show(subst_btn);
gtk_box_pack_start(GTK_BOX(hbox3), subst_btn, FALSE, TRUE, 0);
gtk_signal_connect(GTK_OBJECT(subst_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_template_substitute_cb),
NULL);
g_signal_connect(G_OBJECT(subst_btn), "clicked",
G_CALLBACK(prefs_template_substitute_cb),
NULL);
del_btn = gtk_button_new_with_label(_("Delete"));
gtk_widget_show(del_btn);
gtk_box_pack_start(GTK_BOX(hbox3), del_btn, FALSE, TRUE, 0);
gtk_signal_connect(GTK_OBJECT(del_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_template_delete_cb), NULL);
g_signal_connect(G_OBJECT(del_btn), "clicked",
G_CALLBACK(prefs_template_delete_cb), NULL);
desc_btn = gtk_button_new_with_label(_(" Symbols "));
gtk_widget_show(desc_btn);
gtk_box_pack_end(GTK_BOX(hbox2), desc_btn, FALSE, FALSE, 0);
gtk_signal_connect(GTK_OBJECT(desc_btn), "clicked",
GTK_SIGNAL_FUNC(quote_fmt_quote_description), NULL);
g_signal_connect(G_OBJECT(desc_btn), "clicked",
G_CALLBACK(quote_fmt_quote_description), NULL);
/* templates list */
scroll1 = gtk_scrolled_window_new(NULL, NULL);
@ -249,15 +249,15 @@ static void prefs_template_window_create(void)
title[0] = _("Current templates");
clist_tmpls = gtk_clist_new_with_titles(1, title);
gtk_widget_show(clist_tmpls);
gtk_widget_set_usize(scroll1, -1, 140);
gtk_widget_set_size_request(scroll1, -1, 140);
gtk_container_add(GTK_CONTAINER(scroll1), clist_tmpls);
gtk_clist_set_column_width(GTK_CLIST(clist_tmpls), 0, 80);
gtk_clist_set_selection_mode(GTK_CLIST(clist_tmpls),
GTK_SELECTION_BROWSE);
GTK_WIDGET_UNSET_FLAGS(GTK_CLIST(clist_tmpls)->column[0].button,
GTK_CAN_FOCUS);
gtk_signal_connect(GTK_OBJECT (clist_tmpls), "select_row",
GTK_SIGNAL_FUNC (prefs_template_select_cb), NULL);
g_signal_connect(G_OBJECT (clist_tmpls), "select_row",
G_CALLBACK (prefs_template_select_cb), NULL);
/* ok | cancel */
gtkut_button_set_create(&confirm_area, &ok_btn, _("OK"),
@ -268,15 +268,15 @@ static void prefs_template_window_create(void)
gtk_window_set_title(GTK_WINDOW(window), _("Template configuration"));
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(prefs_template_deleted_cb), NULL);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
GTK_SIGNAL_FUNC(prefs_template_key_pressed_cb), NULL);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(prefs_template_deleted_cb), NULL);
g_signal_connect(G_OBJECT(window), "key_press_event",
G_CALLBACK(prefs_template_key_pressed_cb), NULL);
MANAGE_WINDOW_SIGNALS_CONNECT(window);
gtk_signal_connect(GTK_OBJECT(ok_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_template_ok_cb), NULL);
gtk_signal_connect(GTK_OBJECT(cancel_btn), "clicked",
GTK_SIGNAL_FUNC(prefs_template_cancel_cb), NULL);
g_signal_connect(G_OBJECT(ok_btn), "clicked",
G_CALLBACK(prefs_template_ok_cb), NULL);
g_signal_connect(G_OBJECT(cancel_btn), "clicked",
G_CALLBACK(prefs_template_cancel_cb), NULL);
address_completion_start(window);
@ -345,11 +345,12 @@ static gint prefs_template_deleted_cb(GtkWidget *widget, GdkEventAny *event,
return TRUE;
}
static void prefs_template_key_pressed_cb(GtkWidget *widget,
GdkEventKey *event, gpointer data)
static gboolean prefs_template_key_pressed_cb(GtkWidget *widget,
GdkEventKey *event, gpointer data)
{
if (event && event->keyval == GDK_Escape)
prefs_template_cancel_cb();
return FALSE;
}
static void prefs_template_ok_cb(void)
@ -376,6 +377,8 @@ static void prefs_template_select_cb(GtkCList *clist, gint row, gint column,
{
Template *tmpl;
Template tmpl_def;
GtkTextBuffer *buffer;
GtkTextIter iter;
tmpl_def.name = _("Template");
tmpl_def.subject = "";
@ -397,14 +400,10 @@ static void prefs_template_select_cb(GtkCList *clist, gint row, gint column,
gtk_entry_set_text(GTK_ENTRY(templates.entry_subject),
tmpl->subject ? tmpl->subject : "");
gtk_text_freeze(GTK_TEXT(templates.text_value));
gtk_text_set_point(GTK_TEXT(templates.text_value), 0);
gtk_text_forward_delete
(GTK_TEXT(templates.text_value),
gtk_text_get_length(GTK_TEXT(templates.text_value)));
gtk_text_insert(GTK_TEXT(templates.text_value), NULL, NULL, NULL,
tmpl->value, -1);
gtk_text_thaw(GTK_TEXT(templates.text_value));
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(templates.text_value));
gtk_text_buffer_set_text(buffer, "\0", -1);
gtk_text_buffer_get_start_iter(buffer, &iter);
gtk_text_buffer_insert(buffer, &iter, tmpl->value, -1);
}
static GSList *prefs_template_get_list(void)
@ -434,11 +433,15 @@ static gint prefs_template_clist_set_row(gint row)
gchar *bcc;
gchar *value;
gchar *title[1];
GtkTextBuffer *buffer;
GtkTextIter start, end;
g_return_val_if_fail(row != 0, -1);
value = gtk_editable_get_chars(GTK_EDITABLE(templates.text_value),
0, -1);
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(templates.text_value));
gtk_text_buffer_get_start_iter(buffer, &start);
gtk_text_buffer_get_iter_at_offset(buffer, &end, -1);
value = gtk_text_buffer_get_text(buffer, &start, &end, FALSE);
if (value && *value != '\0') {
gchar *parsed_buf;

View file

@ -398,7 +398,7 @@ static void prefs_toolbar_register(GtkButton *button, ToolbarPage *prefs_toolbar
if (g_strcasecmp(item[3], syl_act) == 0) {
gchar *entry = gtk_entry_get_text(GTK_ENTRY(prefs_toolbar->combo_syl_entry));
const gchar *entry = gtk_entry_get_text(GTK_ENTRY(prefs_toolbar->combo_syl_entry));
get_action_name(entry, &item[2]);
}
else {
@ -469,7 +469,7 @@ static void prefs_toolbar_substitute(GtkButton *button, ToolbarPage *prefs_toolb
if (g_strcasecmp(item[3], syl_act) == 0) {
gchar *entry = gtk_entry_get_text(GTK_ENTRY(prefs_toolbar->combo_syl_entry));
const gchar *entry = gtk_entry_get_text(GTK_ENTRY(prefs_toolbar->combo_syl_entry));
get_action_name(entry, &item[2]);
} else {
item[2] = g_strdup(gtk_entry_get_text(GTK_ENTRY(prefs_toolbar->entry_icon_text)));

View file

@ -903,6 +903,23 @@ void procheader_date_get_localtime(gchar *dest, gint len, const time_t timer)
strftime(dest, len, prefs_common.date_format, lt);
else
strftime(dest, len, default_format, lt);
#warning FIXME_GTK2
#if 1
{
gchar *str;
const gchar *src_codeset, *dest_codeset;
src_codeset = conv_get_current_charset_str();
dest_codeset = CS_UTF_8;
str = conv_codeset_strdup(dest, src_codeset, dest_codeset);
if (str) {
g_snprintf(dest, len, "%s", str);
strncpy2(dest, str, len);
g_free(str);
}
}
#endif
}
gint get_header_from_msginfo(MsgInfo *msginfo, gchar *buf, gint len, gchar *header)

Some files were not shown because too many files have changed in this diff Show more