inital gtk2 patch
This commit is contained in:
parent
1729549232
commit
d013515023
116 changed files with 5240 additions and 3637 deletions
130
ChangeLog-gtk2
Normal file
130
ChangeLog-gtk2
Normal 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
126
ChangeLog-gtk2.jp
Normal 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
|
|
@ -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
23
TODO-gtk2
Normal 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
22
TODO-gtk2.jp
Normal 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を抹殺
|
||||
* その他全ての未知のバグの修正
|
||||
|
||||
機能拡張
|
||||
* 外部エディタ等に渡す際の文字コード指定用のダイアログがあると良いかも
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
cd po
|
||||
/bin/sh poconv.sh
|
||||
cd ..
|
||||
|
||||
aclocal -I ac \
|
||||
&& libtoolize --force --copy \
|
||||
&& autoheader \
|
||||
|
|
71
configure.ac
71
configure.ac
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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\" \
|
||||
|
|
|
@ -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 */
|
||||
|
|
165
src/action.c
165
src/action.c
|
@ -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++)
|
||||
|
|
135
src/addr_compl.c
135
src/addr_compl.c
|
@ -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("e, "\"", 1) < 0) return NULL;
|
||||
if (mbtowc(<, "<", 1) < 0) return NULL;
|
||||
if (mbtowc(>, ">", 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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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("<", fp);
|
||||
|
@ -481,6 +526,8 @@ gint xml_file_put_escape_str(FILE *fp, const gchar *str)
|
|||
}
|
||||
}
|
||||
|
||||
g_free(tmpstr);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
1427
src/compose.c
1427
src/compose.c
File diff suppressed because it is too large
Load diff
|
@ -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);
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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),
|
||||
|
|
67
src/export.c
67
src/export.c
|
@ -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;
|
||||
}
|
||||
|
|
10
src/folder.h
10
src/folder.h
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
189
src/folderview.c
189
src/folderview.c
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 > $@
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
2
src/gtk/sylpheed-marshal.list
Normal file
2
src/gtk/sylpheed-marshal.list
Normal file
|
@ -0,0 +1,2 @@
|
|||
NONE:POINTER
|
||||
NONE:INT,POINTER
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
38
src/imap.c
38
src/imap.c
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
70
src/import.c
70
src/import.c
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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") );
|
||||
|
|
|
@ -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") );
|
||||
|
|
11
src/inc.c
11
src/inc.c
|
@ -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();
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
111
src/logwindow.c
111
src/logwindow.c
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
135
src/mainwindow.c
135
src/mainwindow.c
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
84
src/mh.c
84
src/mh.c
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 =
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)));
|
||||
|
|
|
@ -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
Loading…
Reference in a new issue