//=============================================================================
//
// File : kvi_options.cpp
// Creation date : Tue Jun 20 2000 11:42:00 by Szymon Stefanek
//
// This file is part of the KVirc irc client distribution
// Copyright (C) 2000-2004 Szymon Stefanek (pragma at kvirc dot net)
//
// This program is FREE software. You can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your opinion) any later version.
//
// This program is distributed in the HOPE that it will be USEFUL,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, write to the Free Software Foundation,
// Inc. ,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
//=============================================================================
# define __KVIRC__
# define _KVI_OPTIONS_CPP_
# include "kvi_options.h"
# include "kvi_defaults.h"
# include "kvi_config.h"
# include "kvi_app.h"
# include "kvi_iconmanager.h"
# include "kvi_mirccntrl.h"
# include "kvi_locale.h"
# include "kvi_confignames.h"
# include "kvi_window.h"
# include "kvi_out.h"
# include "kvi_stringconversion.h"
# include "kvi_settings.h"
# include "kvi_splash.h"
# include "kvi_frame.h"
# include "kvi_internalcmd.h"
# include "kvi_theme.h"
# include <tqmessagebox.h>
# include <tqregexp.h>
//#include "kvi_textencoding.h"
//xml parser
# include <tqdom.h>
//!xml parser
# include <zlib.h>
# include <textcodec.h>
# include "kvi_fileutils.h"
# include <tqdir.h>
# include <tqstringlist.h>
// kvi_app.cpp
extern KVIRC_API int g_iIdentDaemonRunningUsers ;
# define RECT_OPTION(_txt,_val,_flags) KviRectOption(KVI_RECT_OPTIONS_PREFIX _txt, _val , _flags)
KviRectOption g_rectOptionsTable [ KVI_NUM_RECT_OPTIONS ] =
{
RECT_OPTION ( " FrameGeometry " , TQRect ( 0 , 0 , 10 , 10 ) , KviOption_sectFlagGeometry ) ,
RECT_OPTION ( " GeneralOptionsDialogGeometry " , TQRect ( 50 , 50 , 600 , 450 ) , KviOption_sectFlagGeometry ) ,
RECT_OPTION ( " RegisteredUsersDialogGeometry " , TQRect ( 50 , 50 , 600 , 450 ) , KviOption_sectFlagGeometry )
} ;
# define BOOL_OPTION(_txt,_val,_flags) KviBoolOption(KVI_BOOL_OPTIONS_PREFIX _txt,_val,_flags)
KviBoolOption g_boolOptionsTable [ KVI_NUM_BOOL_OPTIONS ] =
{
BOOL_OPTION ( " WindowsRememberProperties " , true , KviOption_sectFlagWindows ) ,
BOOL_OPTION ( " IrcViewShowImages " , false , KviOption_sectFlagIrcView | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
BOOL_OPTION ( " IrcViewTimestamp " , true , KviOption_sectFlagIrcView ) ,
BOOL_OPTION ( " IrcViewUrlHighlighting " , true , KviOption_sectFlagIrcView | KviOption_groupTheme ) ,
BOOL_OPTION ( " IrcViewWrapMargin " , true , KviOption_sectFlagIrcView | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
BOOL_OPTION ( " InputHistoryCursorAtEnd " , true , KviOption_sectFlagInput ) ,
BOOL_OPTION ( " AvoidParserWarnings " , false , KviOption_sectFlagUserParser ) ,
BOOL_OPTION ( " UseProxyHost " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " ShowGeneralOptionsDialogAsToplevel " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " ForceBrutalQuit " , false , KviOption_sectFlagIrcSocket ) ,
BOOL_OPTION ( " ShowPingPong " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " PopupNotifierOnNewQueryMessages " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " ShowExtendedServerInfo " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " EchoNumericTopic " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " ShowOwnParts " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " UseAntiSpamOnPrivmsg " , false , KviOption_sectFlagAntiSpam ) ,
BOOL_OPTION ( " UseExtendedPrivmsgView " , false , KviOption_sectFlagIrcView | KviOption_groupTheme ) ,
BOOL_OPTION ( " ShowUserAndHostInPrivmsgView " , false , KviOption_sectFlagIrcView | KviOption_groupTheme ) ,
BOOL_OPTION ( " UseWordHighlighting " , true , KviOption_sectFlagIrcView ) , /* _ALL_ newbie users, with who i was taling asks me where can they switch on */
BOOL_OPTION ( " UseBigIcons " , false , KviOption_sectFlagFrame ) , /* Almost all users asks me "How to decrease icon size?" */
BOOL_OPTION ( " CleanupUnusedModules " , true , KviOption_sectFlagModules ) ,
BOOL_OPTION ( " IgnoreCtcpPing " , false , KviOption_sectFlagCtcp ) ,
BOOL_OPTION ( " IgnoreCtcpVersion " , false , KviOption_sectFlagCtcp ) ,
BOOL_OPTION ( " UseCtcpFloodProtection " , true , KviOption_sectFlagCtcp ) ,
BOOL_OPTION ( " DisableBrokenEventHandlers " , true , KviOption_sectFlagUserParser ) ,
BOOL_OPTION ( " IgnoreCtcpClientinfo " , false , KviOption_sectFlagCtcp ) ,
BOOL_OPTION ( " IgnoreCtcpUserinfo " , false , KviOption_sectFlagCtcp ) ,
BOOL_OPTION ( " IgnoreCtcpFinger " , false , KviOption_sectFlagCtcp ) ,
BOOL_OPTION ( " IgnoreCtcpSource " , false , KviOption_sectFlagCtcp ) ,
BOOL_OPTION ( " IgnoreCtcpTime " , false , KviOption_sectFlagCtcp ) ,
BOOL_OPTION ( " RequestMissingAvatars " , true , KviOption_sectFlagAvatar ) ,
BOOL_OPTION ( " ShowCompactModeChanges " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " IgnoreCtcpDcc " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " AutoAcceptDccChat " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " AutoAcceptDccSend " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " SendZeroAckInDccRecv " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " UseFastDccSend " , true , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " ObtainGlobalBackgroundFromKde " , false , KviOption_sectFlagGui | KviOption_resetUpdatePseudoTransparency | KviOption_groupTheme ) ,
BOOL_OPTION ( " UseTaskBarIrcContextIndicator " , false , KviOption_sectFlagTaskBar | KviOption_resetUpdateGui ) ,
BOOL_OPTION ( " UseGlobalApplicationFont " , false , KviOption_sectFlagGui | KviOption_resetUpdateAppFont | KviOption_groupTheme ) ,
BOOL_OPTION ( " AlwaysQuitKVIrcClosingLastConsole " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " AlwaysDisconnectClosingConnectedConsole " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " FlashWindowOnHighlightedMessages " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " PopupNotifierOnHighlightedMessages " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " FlashWindowOnNotifyOnLine " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " IrcViewTimestampUTC " , false , KviOption_sectFlagIrcView ) ,
BOOL_OPTION ( " UseGlobalPseudoTransparency " , false , KviOption_sectFlagGui | KviOption_resetUpdatePseudoTransparency | KviOption_groupTheme ) ,
BOOL_OPTION ( " UseNotifyList " , false , KviOption_sectFlagConnection | KviOption_resetRestartNotifyList ) ,
BOOL_OPTION ( " NotifyListChangesToActiveWindow " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " AutoResumeDccSendWhenAutoAccepted " , true , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " LimitOutgoingTraffic " , false , KviOption_sectFlagIrcSocket ) ,
BOOL_OPTION ( " SendUnknownCommandsAsRaw " , true , KviOption_sectFlagUserParser ) ,
BOOL_OPTION ( " UserListViewDrawGrid " , true , KviOption_sectFlagUserListView | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
BOOL_OPTION ( " ShowChannelSyncTime " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " RejoinChannelOnKick " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " KeepChannelOpenOnKick " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " AutoCloseDccSendOnSuccess " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " NotifyDccSendSuccessInConsole " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " CreateMinimizedDccSend " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " CreateMinimizedDccChat " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " AutoAcceptIncomingAvatars " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " UseNickCompletionPostfixForFirstWordOnly " , true , KviOption_sectFlagInput ) ,
BOOL_OPTION ( " UseTaskBarIcons " , true , KviOption_sectFlagTaskBar | KviOption_resetUpdateGui ) ,
BOOL_OPTION ( " CreateMinimizedDccSendWhenAutoAccepted " , true , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " CreateMinimizedDccChatWhenAutoAccepted " , true , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " DccGuessIpFromServerWhenLocalIsUnroutable " , true , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " ShowRegisteredUsersDialogAsToplevel " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " AutoLogQueries " , true , KviOption_sectFlagLogging ) , /* this options enabled by default in mIRC,XChat and irssi. People are confused while they want to see logs, but see empty dir*/
BOOL_OPTION ( " AutoLogChannels " , true , KviOption_sectFlagLogging ) ,
BOOL_OPTION ( " AutoLogDccChat " , false , KviOption_sectFlagLogging ) ,
BOOL_OPTION ( " AutoLogConsole " , false , KviOption_sectFlagLogging ) ,
BOOL_OPTION ( " SilentAntiSpam " , false , KviOption_sectFlagAntiSpam ) ,
BOOL_OPTION ( " UseIncomingDccMediaTypeSavePath " , true , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " NotifyListSendUserhostForOnlineUsers " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " UseIntelligentNotifyListManager " , true , KviOption_sectFlagConnection | KviOption_resetRestartNotifyList ) ,
BOOL_OPTION ( " UseWatchListIfAvailable " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " UseTreeWindowListTaskBar " , true , KviOption_sectFlagTaskBar | KviOption_resetUpdateTaskBar | KviOption_groupTheme ) ,
BOOL_OPTION ( " BindIrcIpV4ConnectionsToSpecifiedAddress " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " BindIrcIpV6ConnectionsToSpecifiedAddress " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " UseAntiSpamOnNotice " , false , KviOption_sectFlagAntiSpam ) ,
BOOL_OPTION ( " SetLastAvatarAsDefaultForRegisteredUsers " , true , KviOption_sectFlagAvatar ) ,
BOOL_OPTION ( " CantAcceptIncomingDccConnections " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " IgnoreCtcpAvatar " , false , KviOption_sectFlagCtcp ) ,
BOOL_OPTION ( " CtcpRepliesToActiveWindow " , true , KviOption_sectFlagCtcp ) ,
BOOL_OPTION ( " AutoAcceptDccCanvas " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " NotifyDccSendSuccessInNotifier " , true , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " KillBrokenTimers " , true , KviOption_sectFlagUserParser ) ,
BOOL_OPTION ( " DccVoiceVolumeSliderControlsPCM " , true , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " DccVoiceForceHalfDuplex " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " AutoAcceptDccVoice " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " CreateMinimizedDccVoice " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " CreateMinimizedDccVoiceWhenAutoAccepted " , true , KviOption_sectFlagDcc ) ,
# ifdef COMPILE_ON_WINDOWS
BOOL_OPTION ( " UseIdentService " , true , KviOption_sectFlagConnection | KviOption_resetRestartIdentd ) ,
# else
BOOL_OPTION ( " UseIdentService " , false , KviOption_sectFlagConnection | KviOption_resetRestartIdentd ) ,
# endif
BOOL_OPTION ( " ShowTipAtStartup " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " IdentdEnableIpV6 " , false , KviOption_sectFlagConnection | KviOption_resetRestartIdentd ) ,
# ifdef COMPILE_ON_WINDOWS
BOOL_OPTION ( " IdentdIpV6ContainsIpV4 " , false , KviOption_sectFlagConnection | KviOption_resetRestartIdentd ) ,
# else
BOOL_OPTION ( " IdentdIpV6ContainsIpV4 " , true , KviOption_sectFlagConnection | KviOption_resetRestartIdentd ) ,
# endif
BOOL_OPTION ( " ScaleAvatars " , true , KviOption_sectFlagAvatar | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
BOOL_OPTION ( " ColorNicks " , false , KviOption_sectFlagIrcView | KviOption_groupTheme ) ,
BOOL_OPTION ( " BoldedNicks " , true , KviOption_sectFlagIrcView | KviOption_groupTheme ) ,
BOOL_OPTION ( " DccListenOnSpecifiedInterfaceByDefault " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " ChangeNickAway " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " AutoGeneratedAwayNick " , false , KviOption_sectFlagConnection ) , /* only ircnet uses 9-symbol nicks */
BOOL_OPTION ( " ExitAwayOnInput " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " AlwaysHighlightNick " , true , KviOption_sectFlagIrcView ) ,
BOOL_OPTION ( " ShowChannelsJoinOnIrc " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " ShowChannelsJoinDialogAsToplevel " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " UserDefinedPortRange " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " CreateQueryOnPrivmsg " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " CreateQueryOnNotice " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " CreateMinimizedQuery " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " AutoJoinOnInvite " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " ShowServersConnectDialogOnStart " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " ShowServersConnectDialogAsToplevel " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " AcceptBrokenFileNameDccResumeRequests " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " AutoReconnectOnUnexpectedDisconnect " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " RejoinChannelsAfterReconnect " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " ReopenQueriesAfterReconnect " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " EnableQueryTracing " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " OperatorMessagesToActiveWindow " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " InviteToActiveWindow " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " ShowChannelUserFlagInPrivmsgView " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " DccSendFakeAddressByDefault " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " UseTaskBarActivityMeter " , false , KviOption_sectFlagTaskBar | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
BOOL_OPTION ( " CloseServerWidgetAfterConnect " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " ShowIdentityDialogAsToplevel " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " ShowUserChannelIcons " , true , KviOption_sectFlagUserListView | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
BOOL_OPTION ( " ShowUserChannelState " , false , KviOption_sectFlagUserListView | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
BOOL_OPTION ( " EnableIgnoreOnPrivMsg " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " VerboseIgnore " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " EnableIgnoreOnNotice " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " NotifyFailedDccHandshakes " , true , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " AutoTileWindows " , false , KviOption_sectFlagMdi ) ,
BOOL_OPTION ( " DrawEmoticons " , false , KviOption_sectFlagIrcView | KviOption_groupTheme ) ,
BOOL_OPTION ( " IgnoreCtcpPage " , false , KviOption_sectFlagCtcp ) ,
BOOL_OPTION ( " ShowDialogOnCtcpPage " , true , KviOption_sectFlagCtcp ) ,
BOOL_OPTION ( " BashLikeNickCompletion " , false , KviOption_sectFlagInput ) ,
BOOL_OPTION ( " UseSSLCertificate " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " UseSSLPrivateKey " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " WarnAboutPastingMultipleLines " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " KeepChannelsOpenOnUnexpectedDisconnect " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " KeepQueriesOpenOnUnexpectedDisconnect " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " UseLagMeterEngine " , true , KviOption_sectFlagConnection | KviOption_resetRestartLagMeter ) ,
BOOL_OPTION ( " ShowLagOnContextDisplay " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " DisableBanListRequestOnJoin " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " DisableBanExceptionListRequestOnJoin " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " DisableInviteListRequestOnJoin " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " DisableWhoRequestOnJoin " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " ShowDockExtension " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " GotAdressForDccByDnsMyNick " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " MinimizeConsoleAfterConnect " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " HighlightOnlyNormalMsg " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " HighlightOnlyNormalMsgQueryToo " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " HighlightOnlyNormalMsgNickinChanToo " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " HighlightOnlyAtCustomHighlightLevel " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " MdiManagerInSdiMode " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " DccBrokenBouncerHack " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " ExternalMessagesToActiveWindow " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " IgnoreChannelAvatarRequestsWhenNoAvatarSet " , true , KviOption_sectFlagAvatar ) ,
BOOL_OPTION ( " FlashQueryWindowOnNewMessages " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " ConfirmCloseWhenThereAreConnections " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " UpdateKdeBackgroundOnChange " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " CtcpRequestsToActiveWindow " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " ServerRepliesToActiveWindow " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " ServerNoticesToActiveWindow " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " ServicesNoticesToActiveWindow " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " SortTaskBarItemsByName " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " ShowTaskBarToolTips " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " ShowUserListViewToolTips " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " WhoisRepliesToActiveWindow " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " PopupNotifierOnNotifyOnLine " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " ForciblyDisableNotifier " , false , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " DccSendForceIdleStep " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " StatusBarVisible " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " TrackLastReadTextViewLine " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " KeepChannelOpenOnPart " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " StripMircColorsInUserMessages " , false , KviOption_sectFlagFrame | KviOption_groupTheme ) ,
BOOL_OPTION ( " DoNotSuggestRestoreDefaultScript " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " LimitDccSendSpeed " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " LimitDccRecvSpeed " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " IgnoreModuleVersions " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " DisableInputHistory " , false , KviOption_sectFlagInput | KviOption_resetUpdateGui ) ,
BOOL_OPTION ( " UseSpecialColorForTimestamp " , true , KviOption_sectFlagIrcView | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
BOOL_OPTION ( " DisableAwayListUpdates " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " DisableAvatars " , false , KviOption_sectFlagIrcView | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
BOOL_OPTION ( " DisableUserListLabel " , false , KviOption_sectFlagIrcView | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
BOOL_OPTION ( " DisablePopupIcons " , false , KviOption_sectFlagIrcView | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
BOOL_OPTION ( " ScriptErrorsToDebugWindow " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " ShowMinimizedDebugWindow " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " ShowExtendedInfoInQueryLabel " , true , KviOption_resetUpdateGui ) ,
BOOL_OPTION ( " UseUserListColorsAsNickColors " , true , KviOption_sectFlagIrcView | KviOption_groupTheme ) ,
BOOL_OPTION ( " GzipLogs " , false , KviOption_sectFlagLogging ) ,
BOOL_OPTION ( " MinimizeInTray " , false , KviOption_resetUpdateGui ) ,
BOOL_OPTION ( " DisableNotifierFlashing " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " CommandlineInUserFriendlyModeByDefault " , false , KviOption_sectFlagFrame ) , // this confuses existing users and is not mentioned in the docs where there are commandline examples : we need it to be off by default for now
BOOL_OPTION ( " EnableVisualEffects " , true , KviOption_resetUpdateGui ) ,
BOOL_OPTION ( " DCCFileTransferReplaceOutgoingSpacesWithUnderscores " , true , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " DoNotStretchAvatars " , true , KviOption_sectFlagIrcView | KviOption_resetUpdateGui ) ,
BOOL_OPTION ( " UseDifferentColorForOwnNick " , false , KviOption_sectFlagIrcView | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
BOOL_OPTION ( " CloseInTray " , false , KviOption_sectFlagFrame | KviOption_resetUpdateGui ) ,
BOOL_OPTION ( " StartupMinimized " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " SortReceivedByDccFilesByNicks " , false , KviOption_sectFlagDcc ) ,
BOOL_OPTION ( " LogChannelHistory " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " ClassicTaskBarSetMaximumButtonWidth " , true , KviOption_groupTheme | KviOption_sectFlagGeometry | KviOption_resetUpdateGui ) ,
BOOL_OPTION ( " KeepChannelsOpenOnDisconnect " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " KeepQueriesOpenOnDisconnect " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " HideWindowToolButtons " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " HideInputToolButtons " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " StripControlCodesInLogs " , false , KviOption_sectFlagLogging ) ,
BOOL_OPTION ( " EnableTrayIconFlashing " , true , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " UseFlatClassicTaskbarButtons " , false , KviOption_sectFlagTaskBar | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
BOOL_OPTION ( " ShowTreeTaskbarHeader " , false , KviOption_sectFlagTaskBar | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
BOOL_OPTION ( " UseLevelBasedTrayNotification " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " MuteAllSounds " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " CreateMinimizedChannels " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " ShowNetworkNameForConsoleTaskBarEntry " , true , KviOption_sectFlagFrame | KviOption_resetUpdateGui ) ,
BOOL_OPTION ( " DrawGenderIcons " , true , KviOption_sectFlagFrame | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
BOOL_OPTION ( " PrependGenderInfoToRealname " , true , KviOption_sectFlagConnection ) ,
BOOL_OPTION ( " UseIdentServiceOnlyOnConnect " , true , KviOption_sectFlagConnection | KviOption_resetRestartIdentd ) ,
BOOL_OPTION ( " UseSystemUrlHandlers " , true , KviOption_sectFlagUrl ) ,
BOOL_OPTION ( " ScaleAvatarsOnLoad " , true , KviOption_sectFlagAvatar ) ,
BOOL_OPTION ( " DisableNotifierFadein " , false , KviOption_sectFlagFrame ) ,
BOOL_OPTION ( " UseAntiAliasing " , true , KviOption_sectFlagGui | KviOption_resetUpdateGui ) ,
} ;
# define STRING_OPTION(_txt,_val,_flags) KviStringOption(KVI_STRING_OPTIONS_PREFIX _txt,_val,_flags)
// FIXME: #warning "Remove the unused string options here!"
# ifdef COMPILE_ON_WINDOWS
# define RUN_THE_BROWSER "run \"cmd.exe / c start \\\"\\\" \\\"$0\\\"\""
# else
# ifdef COMPILE_KDE_SUPPORT
# define RUN_THE_BROWSER "run kfmclient openURL $0"
# else
# ifdef Q_OS_MACX
# define RUN_THE_BROWSER "run open $0"
# else
# define RUN_THE_BROWSER "run kvi_run_netscape $0"
# endif
# endif
# endif
KviStringOption g_stringOptionsTable [ KVI_NUM_STRING_OPTIONS ] =
{
STRING_OPTION ( " UNUSED:FrameCaption " , " " , KviOption_sectFlagFrame ) ,
STRING_OPTION ( " Nickname1 " , KVI_DEFAULT_NICKNAME1 , KviOption_sectFlagUser ) ,
STRING_OPTION ( " Nickname2 " , KVI_DEFAULT_NICKNAME2 , KviOption_sectFlagUser ) ,
STRING_OPTION ( " Nickname3 " , KVI_DEFAULT_NICKNAME3 , KviOption_sectFlagUser ) ,
STRING_OPTION ( " Nickname4 " , KVI_DEFAULT_NICKNAME4 , KviOption_sectFlagUser ) ,
STRING_OPTION ( " Username " , KVI_DEFAULT_USERNAME , KviOption_sectFlagUser ) ,
STRING_OPTION ( " Realname " , KVI_DEFAULT_REALNAME , KviOption_sectFlagUser ) ,
STRING_OPTION ( " LocalHostIp " , " 127.0.0.1 " , KviOption_sectFlagIrcSocket ) ,
STRING_OPTION ( " PartMessage " , KVI_DEFAULT_PART_MESSAGE , KviOption_sectFlagConnection ) ,
STRING_OPTION ( " QuitMessage " , KVI_DEFAULT_TQUIT_MESSAGE , KviOption_sectFlagConnection ) ,
STRING_OPTION ( " UrlHttpCommand " , RUN_THE_BROWSER , KviOption_sectFlagUrl ) ,
STRING_OPTION ( " ExtendedPrivmsgPrefix " , " [ " , KviOption_sectFlagIrcView | KviOption_groupTheme ) ,
STRING_OPTION ( " ExtendedPrivmsgPostfix " , " ] " , KviOption_sectFlagIrcView | KviOption_groupTheme ) ,
STRING_OPTION ( " CtcpVersionPostfix " , " " , KviOption_sectFlagCtcp ) ,
STRING_OPTION ( " CtcpUserInfoOther " , KVI_DEFAULT_CTCP_USERINFO_REPLY , KviOption_sectFlagUser ) ,
STRING_OPTION ( " CtcpSourcePostfix " , " " , KviOption_sectFlagCtcp ) ,
STRING_OPTION ( " UrlFtpCommand " , RUN_THE_BROWSER , KviOption_sectFlagUrl ) ,
STRING_OPTION ( " UrlHttpsCommand " , RUN_THE_BROWSER , KviOption_sectFlagUrl ) ,
STRING_OPTION ( " UrlMailtoCommand " , RUN_THE_BROWSER , KviOption_sectFlagUrl ) ,
STRING_OPTION ( " PreferredMediaPlayer " , " auto " , KviOption_sectFlagFrame ) ,
STRING_OPTION ( " UrlFileCommand " , " play $0 " , KviOption_sectFlagUrl ) ,
STRING_OPTION ( " NickCompletionPostfix " , " : " , KviOption_sectFlagInput ) ,
STRING_OPTION ( " UrlUnknownCommand " , RUN_THE_BROWSER , KviOption_sectFlagUrl ) ,
STRING_OPTION ( " IpV4ConnectionBindAddress " , " " , KviOption_sectFlagConnection ) ,
STRING_OPTION ( " IpV6ConnectionBindAddress " , " " , KviOption_sectFlagConnection ) ,
STRING_OPTION ( " DccVoiceSoundDevice " , " /dev/dsp " , KviOption_sectFlagDcc ) ,
STRING_OPTION ( " DccVoiceMixerDevice " , " /dev/mixer " , KviOption_sectFlagDcc ) ,
STRING_OPTION ( " AwayMessage " , KVI_DEFAULT_AWAY_MESSAGE , KviOption_sectFlagConnection ) ,
STRING_OPTION ( " IdentdUser " , " kvirc " , KviOption_sectFlagConnection | KviOption_resetRestartIdentd ) ,
STRING_OPTION ( " DccListenDefaultInterface " , " ppp0 " , KviOption_sectFlagDcc ) ,
STRING_OPTION ( " CustomAwayNick " , KVI_DEFAULT_AWAY_NICK , KviOption_sectFlagConnection ) ,
STRING_OPTION ( " DefaultDccFakeAddress " , " " , KviOption_sectFlagDcc ) ,
STRING_OPTION ( " CtcpPageReply " , KVI_DEFAULT_CTCP_PAGE_REPLY , KviOption_sectFlagCtcp ) ,
STRING_OPTION ( " SSLCertificatePath " , " " , KviOption_sectFlagConnection | KviOption_encodePath ) ,
STRING_OPTION ( " SSLCertificatePass " , " " , KviOption_sectFlagConnection ) ,
STRING_OPTION ( " SSLPrivateKeyPath " , " " , KviOption_sectFlagConnection | KviOption_encodePath ) ,
STRING_OPTION ( " SSLPrivateKeyPass " , " " , KviOption_sectFlagConnection ) ,
STRING_OPTION ( " SoundSystem " , " unknown " , KviOption_sectFlagFrame ) ,
STRING_OPTION ( " DefaultUserMode " , " " , KviOption_sectFlagUser ) ,
STRING_OPTION ( " LastImageDialogPath " , " " , KviOption_sectFlagUser | KviOption_encodePath ) ,
STRING_OPTION ( " IconThemeSubdir " , " " , KviOption_sectFlagUser | KviOption_groupTheme | KviOption_resetReloadImages | KviOption_encodePath ) ,
STRING_OPTION ( " IncomingPath " , " " , KviOption_sectFlagUser | KviOption_encodePath ) ,
STRING_OPTION ( " MyAvatar " , " " , KviOption_sectFlagUser ) ,
STRING_OPTION ( " DefaultTextEncoding " , " " , KviOption_sectFlagFrame ) ,
STRING_OPTION ( " WinampTextEncoding " , " " , KviOption_sectFlagFrame ) ,
STRING_OPTION ( " Mp3TagsEncoding " , " " , KviOption_sectFlagFrame ) ,
STRING_OPTION ( " CtcpUserInfoAge " , " " , KviOption_sectFlagUser ) ,
STRING_OPTION ( " CtcpUserInfoGender " , " " , KviOption_sectFlagUser ) ,
STRING_OPTION ( " CtcpUserInfoLocation " , " " , KviOption_sectFlagUser ) ,
STRING_OPTION ( " CtcpUserInfoLanguages " , " " , KviOption_sectFlagUser ) ,
STRING_OPTION ( " WordSplitters " , " , \" ';:|.%^~! \\ $#() " , KviOption_sectFlagIrcView ) ,
STRING_OPTION ( " OnNewQueryOpenedSound " , " " , KviOption_sectFlagFrame ) ,
STRING_OPTION ( " OnHighlightedMessageSound " , " " , KviOption_sectFlagFrame ) ,
STRING_OPTION ( " OnMeKickedSound " , " " , KviOption_sectFlagFrame ) ,
STRING_OPTION ( " OnQueryMessageSound " , " " , KviOption_sectFlagFrame ) ,
STRING_OPTION ( " IrcViewTimestampFormat " , " [hh:mm:ss] " , KviOption_sectFlagIrcView ) ,
STRING_OPTION ( " PreferredTorrentClient " , " auto " , KviOption_sectFlagFrame )
} ;
# define STRINGLIST_OPTION(_txt,_flags) \
KviStringListOption ( KVI_STRINGLIST_OPTIONS_PREFIX _txt , TQStringList ( ) , _flags )
# define STRINGLIST_OPTION_WITHDEFAULT(_txt,_flags,_def) \
KviStringListOption ( KVI_STRINGLIST_OPTIONS_PREFIX _txt , TQStringList ( _def ) , _flags )
KviStringListOption g_stringlistOptionsTable [ KVI_NUM_STRINGLIST_OPTIONS ] =
{
STRINGLIST_OPTION ( " HighlightWords " , KviOption_sectFlagIrcView ) ,
STRINGLIST_OPTION ( " SpamWords " , KviOption_sectFlagAntiSpam ) ,
STRINGLIST_OPTION_WITHDEFAULT ( " RecentChannels " , KviOption_sectFlagRecent , " #kvirc " ) ,
STRINGLIST_OPTION ( " RecentServers " , KviOption_sectFlagRecent ) ,
STRINGLIST_OPTION ( " RecentNicknames " , KviOption_sectFlagRecent ) ,
STRINGLIST_OPTION ( " ModuleExtensionToolbars " , KviOption_sectFlagFrame ) ,
STRINGLIST_OPTION ( " ImageSearchPaths " , KviOption_sectFlagFrame | KviOption_encodePath ) ,
STRINGLIST_OPTION ( " RecentIrcUrls " , KviOption_sectFlagRecent )
} ;
# define MIRC_COLOR_OPTION(_num,_red,_green,_blue) \
KviColorOption ( KVI_MIRCCOLOR_OPTIONS_PREFIX _num , TQColor ( _red , _green , _blue ) , \
KviOption_sectFlagMircColor | KviOption_resetUpdateGui | KviOption_groupTheme )
KviColorOption g_mirccolorOptionsTable [ KVI_NUM_MIRCCOLOR_OPTIONS ] =
{
MIRC_COLOR_OPTION ( " 0 " , 255 , 255 , 255 ) ,
MIRC_COLOR_OPTION ( " 1 " , 0 , 0 , 0 ) ,
MIRC_COLOR_OPTION ( " 2 " , 0 , 0 , 140 ) ,
MIRC_COLOR_OPTION ( " 3 " , 0 , 100 , 0 ) ,
MIRC_COLOR_OPTION ( " 4 " , 230 , 0 , 0 ) ,
MIRC_COLOR_OPTION ( " 5 " , 150 , 0 , 0 ) ,
MIRC_COLOR_OPTION ( " 6 " , 80 , 0 , 80 ) ,
MIRC_COLOR_OPTION ( " 7 " , 255 , 90 , 0 ) ,
MIRC_COLOR_OPTION ( " 8 " , 255 , 255 , 0 ) ,
MIRC_COLOR_OPTION ( " 9 " , 0 , 255 , 0 ) ,
MIRC_COLOR_OPTION ( " 10 " , 0 , 150 , 180 ) ,
MIRC_COLOR_OPTION ( " 11 " , 170 , 170 , 255 ) ,
MIRC_COLOR_OPTION ( " 12 " , 15 , 15 , 255 ) ,
MIRC_COLOR_OPTION ( " 13 " , 200 , 0 , 200 ) ,
MIRC_COLOR_OPTION ( " 14 " , 80 , 80 , 80 ) ,
MIRC_COLOR_OPTION ( " 15 " , 170 , 170 , 170 )
} ;
# define COLOR_OPTION(_name,_red,_green,_blue,_flags) \
KviColorOption ( KVI_COLOR_OPTIONS_PREFIX _name , \
TQColor ( _red , _green , _blue ) , \
_flags | KviOption_resetUpdateGui | KviOption_groupTheme )
KviColorOption g_colorOptionsTable [ KVI_NUM_COLOR_OPTIONS ] =
{
COLOR_OPTION ( " MdiBackground " , 0 , 0 , 0 , KviOption_sectFlagMdi ) ,
COLOR_OPTION ( " TaskBarNormalText " , 0 , 0 , 0 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " TaskBarMinimizedText " , 60 , 60 , 60 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " TaskBarHighlight1Text " , 0 , 16 , 144 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " TaskBarHighlight2Text " , 32 , 0 , 255 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " TaskBarProgressBar " , 180 , 180 , 180 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " MdiCaptionActive " , 113 , 125 , 190 , KviOption_sectFlagMdi ) ,
COLOR_OPTION ( " MdiCaptionInactive " , 180 , 180 , 180 , KviOption_sectFlagMdi ) ,
COLOR_OPTION ( " CaptionTextActive " , 255 , 255 , 255 , KviOption_sectFlagWindows ) ,
COLOR_OPTION ( " CaptionTextActive2 " , 255 , 30 , 30 , KviOption_sectFlagWindows ) ,
COLOR_OPTION ( " CaptionTextInactive " , 0 , 0 , 0 , KviOption_sectFlagWindows ) ,
COLOR_OPTION ( " CaptionTextInactive2 " , 30 , 30 , 30 , KviOption_sectFlagWindows ) ,
COLOR_OPTION ( " IrcViewBackground " , 255 , 255 , 255 , KviOption_sectFlagIrcView ) ,
COLOR_OPTION ( " InputBackgroundColor " , 255 , 255 , 255 , KviOption_sectFlagInput ) ,
COLOR_OPTION ( " InputSelectionBackground " , 0 , 0 , 0 , KviOption_sectFlagInput ) ,
COLOR_OPTION ( " InputSelectionForeground " , 255 , 255 , 255 , KviOption_sectFlagInput ) ,
COLOR_OPTION ( " InputCursor " , 0 , 0 , 0 , KviOption_sectFlagInput ) ,
COLOR_OPTION ( " InputControl " , 200 , 100 , 0 , KviOption_sectFlagInput ) ,
COLOR_OPTION ( " InputForeground " , 0 , 0 , 0 , KviOption_sectFlagInput ) ,
COLOR_OPTION ( " UserListViewBackground " , 255 , 255 , 255 , KviOption_sectFlagUserListView ) ,
COLOR_OPTION ( " UserListViewOpForeground " , 200 , 0 , 0 , KviOption_sectFlagUserListView ) ,
COLOR_OPTION ( " UserListViewVoiceForeground " , 0 , 0 , 200 , KviOption_sectFlagUserListView ) ,
COLOR_OPTION ( " UserListViewNormalForeground " , 0 , 0 , 0 , KviOption_sectFlagUserListView ) ,
COLOR_OPTION ( " UserListViewSelectionBackground " , 0 , 0 , 0 , KviOption_sectFlagUserListView ) ,
COLOR_OPTION ( " UserListViewSelectionForeground " , 255 , 255 , 255 , KviOption_sectFlagUserListView ) ,
COLOR_OPTION ( " LabelBackground " , 255 , 255 , 255 , KviOption_sectFlagLabel ) ,
COLOR_OPTION ( " LabelForeground " , 0 , 0 , 0 , KviOption_sectFlagLabel ) ,
COLOR_OPTION ( " GlobalTransparencyFade " , 255 , 255 , 255 , KviOption_sectFlagGui | KviOption_resetUpdatePseudoTransparency ) ,
COLOR_OPTION ( " IrcToolBarAppletBackground " , 255 , 255 , 255 , KviOption_sectFlagIrcToolBar ) ,
COLOR_OPTION ( " IrcToolBarAppletForegroundLowContrast " , 180 , 180 , 180 , KviOption_sectFlagIrcToolBar ) ,
COLOR_OPTION ( " IrcToolBarAppletForegroundMidContrast " , 110 , 110 , 110 , KviOption_sectFlagIrcToolBar ) ,
COLOR_OPTION ( " IrcToolBarAppletForegroundHighContrastInactive1 " , 40 , 40 , 40 , KviOption_sectFlagIrcToolBar ) ,
COLOR_OPTION ( " IrcToolBarAppletForegroundHighContrastInactive2 " , 40 , 40 , 40 , KviOption_sectFlagIrcToolBar ) ,
COLOR_OPTION ( " IrcToolBarAppletForegroundHighContrastActive1 " , 0 , 0 , 0 , KviOption_sectFlagIrcToolBar ) ,
COLOR_OPTION ( " IrcToolBarAppletForegroundHighContrastActive2 " , 0 , 60 , 0 , KviOption_sectFlagIrcToolBar ) ,
COLOR_OPTION ( " TreeTaskBarBackground " , 255 , 255 , 255 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " TreeTaskBarActiveBackground " , 200 , 200 , 200 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " TreeTaskBarForeground " , 0 , 0 , 0 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " TreeTaskBarActiveForeground " , 0 , 0 , 0 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " TreeTaskBarHighlight1Foreground " , 0 , 16 , 144 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " TreeTaskBarHighlight2Foreground " , 32 , 0 , 255 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " TreeTaskBarProgress " , 150 , 150 , 150 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " UserListViewHalfOpForeground " , 119 , 0 , 178 , KviOption_sectFlagUserListView ) ,
COLOR_OPTION ( " TaskBarHighlight3Text " , 128 , 20 , 255 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " TaskBarHighlight4Text " , 220 , 0 , 255 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " TaskBarHighlight5Text " , 255 , 0 , 0 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " TreeTaskBarHighlight3Foreground " , 128 , 0 , 255 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " TreeTaskBarHighlight4Foreground " , 220 , 0 , 255 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " TreeTaskBarHighlight5Foreground " , 255 , 0 , 0 , KviOption_sectFlagTaskBar ) ,
COLOR_OPTION ( " UserListViewChanAdminForeground " , 83 , 54 , 5 , KviOption_sectFlagUserListView ) ,
COLOR_OPTION ( " UserListViewUserOpForeground " , 0 , 127 , 178 , KviOption_sectFlagUserListView ) ,
COLOR_OPTION ( " UserListViewGrid " , 110 , 110 , 110 , KviOption_sectFlagUserListView ) ,
COLOR_OPTION ( " UserListViewChanOwnerForeground " , 81 , 87 , 111 , KviOption_sectFlagUserListView ) ,
COLOR_OPTION ( " IrcViewMarkLine " , 40 , 40 , 40 , KviOption_sectFlagIrcView ) ,
COLOR_OPTION ( " UserListViewAwayForeground " , 143 , 143 , 143 , KviOption_sectFlagUserListView ) ,
COLOR_OPTION ( " UserListViewOwnForeground " , 255 , 255 , 0 , KviOption_sectFlagUserListView )
} ;
# define IC_COLOR_OPTION(_num,_red,_green,_blue) \
KviColorOption ( \
KVI_ICCOLOR_OPTIONS_PREFIX _num , \
TQColor ( _red , _green , _blue ) , \
KviOption_sectFlagTaskBar | KviOption_resetUpdateGui | KviOption_groupTheme )
KviColorOption g_iccolorOptionsTable [ KVI_NUM_ICCOLOR_OPTIONS ] =
{
IC_COLOR_OPTION ( " 0 " , 250 , 250 , 0 ) ,
IC_COLOR_OPTION ( " 1 " , 0 , 0 , 0 ) ,
IC_COLOR_OPTION ( " 2 " , 0 , 0 , 200 ) ,
IC_COLOR_OPTION ( " 3 " , 200 , 0 , 0 ) ,
IC_COLOR_OPTION ( " 4 " , 255 , 255 , 255 ) ,
IC_COLOR_OPTION ( " 5 " , 0 , 150 , 190 ) ,
IC_COLOR_OPTION ( " 6 " , 0 , 130 , 0 ) ,
IC_COLOR_OPTION ( " 7 " , 150 , 0 , 170 )
} ;
# define PIXMAP_OPTION(_name,_flags) \
KviPixmapOption ( \
KVI_PIXMAP_OPTIONS_PREFIX _name , \
KviPixmap ( ) , \
_flags | KviOption_resetUpdateGui )
KviPixmapOption g_pixmapOptionsTable [ KVI_NUM_PIXMAP_OPTIONS ] =
{
PIXMAP_OPTION ( " MdiBackground " , KviOption_sectFlagMdi | KviOption_groupTheme ) ,
PIXMAP_OPTION ( " IrcViewBackground " , KviOption_sectFlagIrcView | KviOption_groupTheme ) ,
PIXMAP_OPTION ( " InputBackground " , KviOption_sectFlagInput | KviOption_groupTheme ) ,
PIXMAP_OPTION ( " UserListViewBackground " , KviOption_sectFlagUserListView | KviOption_groupTheme ) ,
PIXMAP_OPTION ( " LabelBackground " , KviOption_sectFlagLabel | KviOption_groupTheme ) ,
PIXMAP_OPTION ( " MyAvatar " , KviOption_sectFlagUser ) ,
PIXMAP_OPTION ( " IrcToolBarAppletBackground " , KviOption_sectFlagIrcToolBar | KviOption_groupTheme ) ,
PIXMAP_OPTION ( " TreeTaskBarBackground " , KviOption_sectFlagTaskBar | KviOption_groupTheme ) ,
PIXMAP_OPTION ( " GlobalTransparencyBackground " , KviOption_sectFlagGui | KviOption_resetUpdatePseudoTransparency | KviOption_groupTheme )
} ;
//#define INT_OPTION(_name,_value,_flags)
// {
// KVI_INT_OPTIONS_PREFIX _name ,
// _value ,
// _flags
// }
//
//KviIntOption g_intOptionsTable[KVI_NUM_INT_OPTIONS]=
//{
// INT_OPTION("IrcViewMaxBufferSize",KVI_IRCVIEW_MAX_LINES,KviOption_sectFlagIrcView),
// INT_OPTION("IrcViewTollTipTimeoutInMsec",1800,KviOption_sectFlagIrcView),
// INT_OPTION("IrcViewToolTipHideTimeoutInMsec",10000,KviOption_sectFlagIrcView)
//};
# define UINT_OPTION(_name,_value,_flags) \
KviUIntOption ( \
KVI_UINT_OPTIONS_PREFIX _name , \
_value , \
_flags \
)
KviUIntOption g_uintOptionsTable [ KVI_NUM_UINT_OPTIONS ] =
{
UINT_OPTION ( " IrcSocketTimeout " , 60 , KviOption_sectFlagIrcSocket ) ,
UINT_OPTION ( " ModuleCleanupTimerInterval " , 90 , KviOption_sectFlagModules ) ,
UINT_OPTION ( " ModuleCleanupTimeout " , 180 , KviOption_sectFlagModules ) ,
UINT_OPTION ( " MaxCtcpRequests " , 5 , KviOption_sectFlagCtcp ) ,
UINT_OPTION ( " CtcpFloodCheckInterval " , 10 , KviOption_sectFlagCtcp ) ,
UINT_OPTION ( " TotalConnectionTime " , 0 , 0 ) ,
UINT_OPTION ( " DccSocketTimeout " , 360 , KviOption_sectFlagDcc ) ,
UINT_OPTION ( " DccSendIdleStepInMSec " , 30 , KviOption_sectFlagDcc ) ,
UINT_OPTION ( " DccSendPacketSize " , 4096 , KviOption_sectFlagDcc ) ,
UINT_OPTION ( " GlobalTransparencyParentFadeFactor " , 10 , KviOption_sectFlagGui | KviOption_resetUpdatePseudoTransparency | KviOption_groupTheme ) ,
UINT_OPTION ( " GlobalTransparencyChildFadeFactor " , 50 , KviOption_sectFlagGui | KviOption_resetUpdatePseudoTransparency | KviOption_groupTheme ) ,
UINT_OPTION ( " NotifyListCheckTimeInSecs " , 180 , KviOption_sectFlagConnection ) ,
UINT_OPTION ( " SocketQueueFlushTimeout " , 500 , KviOption_sectFlagIrcSocket ) ,
UINT_OPTION ( " OutgoingTrafficLimitUSeconds " , 2000000 , KviOption_sectFlagIrcSocket ) ,
UINT_OPTION ( " NotifyListIsOnDelayTimeInSecs " , 6 , KviOption_sectFlagConnection ) ,
UINT_OPTION ( " NotifyListUserhostDelayTimeInSecs " , 6 , KviOption_sectFlagConnection ) ,
UINT_OPTION ( " TreeTaskBarMinimumWidth " , 24 , KviOption_sectFlagTaskBar | KviOption_resetUpdateTaskBar ) ,
UINT_OPTION ( " AvatarOfferTimeoutInSecs " , 60 , KviOption_sectFlagAvatar ) ,
UINT_OPTION ( " IrcViewMaxBufferSize " , 1024 , KviOption_sectFlagIrcView ) ,
UINT_OPTION ( " IrcViewToolTipTimeoutInMsec " , 1200 , KviOption_sectFlagIrcView ) ,
UINT_OPTION ( " IrcViewToolTipHideTimeoutInMsec " , 12000 , KviOption_sectFlagIrcView ) ,
UINT_OPTION ( " DccVoicePreBufferSize " , 32000 , KviOption_sectFlagDcc ) ,
UINT_OPTION ( " IdentdPort " , 113 , KviOption_sectFlagConnection | KviOption_resetRestartIdentd ) ,
UINT_OPTION ( " AvatarScaleWidth " , 80 , KviOption_sectFlagAvatar | KviOption_resetUpdateGui ) ,
UINT_OPTION ( " AvatarScaleHeight " , 80 , KviOption_sectFlagAvatar | KviOption_resetUpdateGui ) ,
UINT_OPTION ( " DccMinPort " , 30000 , KviOption_sectFlagDcc ) ,
UINT_OPTION ( " DccMaxPort " , 31000 , KviOption_sectFlagDcc ) ,
UINT_OPTION ( " SoundOfferTimeoutInSecs " , 60 , KviOption_sectFlagConnection ) ,
UINT_OPTION ( " MaximumRequestedAvatarSize " , 256000 , KviOption_sectFlagAvatar ) ,
UINT_OPTION ( " TreeTaskBarMaximumWidth " , 200 , KviOption_sectFlagTaskBar | KviOption_resetUpdateTaskBar ) ,
UINT_OPTION ( " PasteDelay " , 2000 , KviOption_sectFlagInput ) ,
UINT_OPTION ( " MaxDccSendTransfers " , 10 , KviOption_sectFlagDcc ) ,
UINT_OPTION ( " MaxDccSlots " , 64 , KviOption_sectFlagDcc ) ,
UINT_OPTION ( " TileMethod " , 5 , KviOption_sectFlagMdi ) ,
UINT_OPTION ( " LagMeterHeartbeat " , 5000 , KviOption_sectFlagConnection | KviOption_resetRestartLagMeter ) ,
UINT_OPTION ( " LagAlarmTime " , 120000 , KviOption_sectFlagConnection ) ,
UINT_OPTION ( " UNUSED " , 0 , KviOption_sectFlagFrame ) ,
UINT_OPTION ( " TaskBarButtonMinWidth " , 100 , KviOption_sectFlagTaskBar ) ,
UINT_OPTION ( " OutputVerbosityLevel " , KVI_VERBOSITY_LEVEL_NORMAL , KviOption_sectFlagFrame ) ,
UINT_OPTION ( " IrcContextAppletWidth " , 160 , KviOption_sectFlagFrame ) ,
UINT_OPTION ( " MinHighlightLevel " , 0 , KviOption_uintMinHighlightLevel ) ,
UINT_OPTION ( " UserListViewGridType " , 3 , KviOption_sectFlagUserListView | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
UINT_OPTION ( " TaskBarMaximumRows " , 2 , KviOption_sectFlagFrame ) ,
UINT_OPTION ( " MaxAutoReconnectAttempts " , 15 , KviOption_sectFlagFrame ) ,
UINT_OPTION ( " AutoReconnectDelay " , 10 , KviOption_sectFlagFrame ) ,
UINT_OPTION ( " MaxDccSendSpeed " , 0 , KviOption_sectFlagFrame ) ,
UINT_OPTION ( " MaxDccRecvSpeed " , 0 , KviOption_sectFlagFrame ) ,
UINT_OPTION ( " TimeStampForeground " , KVI_DARKGRAY , KviOption_sectFlagIrcView | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
UINT_OPTION ( " TimeStampBackground " , KVI_TRANSPARENT , KviOption_sectFlagIrcView | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
UINT_OPTION ( " UserExperienceLevel " , 1 , KviOption_sectFlagUser ) ,
UINT_OPTION ( " ClassicTaskBarMaximumButtonWidth " , 100 , KviOption_sectFlagGeometry | KviOption_resetUpdateGui | KviOption_groupTheme ) ,
UINT_OPTION ( " DefaultBanType " , 7 , KviOption_sectFlagIrcSocket ) ,
UINT_OPTION ( " IrcViewPixmapAlign " , 0 , KviOption_sectFlagIrcView | KviOption_groupTheme ) ,
UINT_OPTION ( " UserListPixmapAlign " , 0 , KviOption_sectFlagFrame | KviOption_groupTheme ) ,
UINT_OPTION ( " ToolBarAppletPixmapAlign " , 0 , KviOption_sectFlagFrame | KviOption_groupTheme ) ,
UINT_OPTION ( " TreeTaskBarPixmapAlign " , 0 , KviOption_sectFlagFrame | KviOption_groupTheme ) ,
UINT_OPTION ( " InputPixmapAlign " , 0 , KviOption_sectFlagFrame | KviOption_groupTheme ) ,
UINT_OPTION ( " AutoFlushLogs " , 30 , KviOption_sectFlagFrame ) ,
UINT_OPTION ( " MinTrayLowLevelMessage " , 1 , KviOption_sectFlagFrame ) ,
UINT_OPTION ( " MinTrayHighLevelMessage " , 4 , KviOption_sectFlagFrame ) ,
UINT_OPTION ( " IdentdOutputMode " , KviIdentdOutputMode : : Quiet , KviOption_sectFlagConnection ) ,
UINT_OPTION ( " ScaleAvatarsOnLoadHeight " , 600 , KviOption_sectFlagAvatar ) ,
UINT_OPTION ( " ScaleAvatarsOnLoadWidth " , 800 , KviOption_sectFlagAvatar ) ,
UINT_OPTION ( " NotifierActiveTransparency " , 90 , KviOption_sectFlagFrame ) ,
UINT_OPTION ( " NotifierInactiveTransparency " , 40 , KviOption_sectFlagFrame )
} ;
# define FONT_OPTION(_name,_face,_size,_flags) \
KviFontOption ( \
KVI_FONT_OPTIONS_PREFIX _name , \
TQFont ( _face , _size ) , \
_flags | KviOption_groupTheme \
)
KviFontOption g_fontOptionsTable [ KVI_NUM_FONT_OPTIONS ] =
{
# ifdef COMPILE_ON_WINDOWS
FONT_OPTION ( " IrcView " , " Arial " , 9 , KviOption_sectFlagIrcView | KviOption_resetUpdateGui ) ,
FONT_OPTION ( " Input " , " Arial " , 12 , KviOption_sectFlagInput | KviOption_resetUpdateGui ) ,
FONT_OPTION ( " UserListView " , " Arial " , 9 , KviOption_sectFlagUserListView | KviOption_resetUpdateGui ) ,
FONT_OPTION ( " Label " , " Arial " , 9 , KviOption_sectFlagLabel | KviOption_resetUpdateGui ) ,
FONT_OPTION ( " Application " , " Arial " , 9 , KviOption_sectFlagGui | KviOption_resetUpdateAppFont ) ,
FONT_OPTION ( " IrcToolBarApplet " , " Arial " , 9 , KviOption_sectFlagIrcToolBar | KviOption_resetUpdateGui ) ,
FONT_OPTION ( " Taskbar " , " Arial " , 9 , KviOption_sectFlagTaskBar | KviOption_resetUpdateTaskBar )
# else
FONT_OPTION ( " IrcView " , " Monospace " , 10 , KviOption_sectFlagIrcView | KviOption_resetUpdateGui ) ,
FONT_OPTION ( " Input " , " Sans Serif " , 12 , KviOption_sectFlagInput | KviOption_resetUpdateGui ) ,
FONT_OPTION ( " UserListView " , " Sans Serif " , 10 , KviOption_sectFlagUserListView | KviOption_resetUpdateGui ) ,
FONT_OPTION ( " Label " , " Sans Serif " , 10 , KviOption_sectFlagLabel | KviOption_resetUpdateGui ) ,
FONT_OPTION ( " Application " , " Sans Serif " , 10 , KviOption_sectFlagGui | KviOption_resetUpdateAppFont ) ,
FONT_OPTION ( " IrcToolBarApplet " , " Sans Serif " , 10 , KviOption_sectFlagIrcToolBar | KviOption_resetUpdateGui ) ,
FONT_OPTION ( " Taskbar " , " Sans Serif " , 10 , KviOption_sectFlagTaskBar | KviOption_resetUpdateTaskBar )
# endif
} ;
# define MSGTYPE_OPTION(_name,_text,_icon,_levl) \
KviMsgTypeOption ( \
KVI_MSGTYPE_OPTIONS_PREFIX _name , \
KviMsgType ( _text , _icon , KVI_BLACK , KVI_TRANSPARENT , true , _levl ) , \
KviOption_sectFlagMsgType | KviOption_groupTheme \
)
# define MSGTYPE_OPTION_SPEC(_name,_text,_icon,_fore,_back,_levl) \
KviMsgTypeOption ( \
KVI_MSGTYPE_OPTIONS_PREFIX _name , \
KviMsgType ( _text , _icon , _fore , _back , true , _levl ) , \
KviOption_sectFlagMsgType | KviOption_groupTheme \
)
// FIXME: #warning "FIX THE ICONS HERE!!!"
KviMsgTypeOption g_msgtypeOptionsTable [ KVI_NUM_MSGTYPE_OPTIONS ] =
{
MSGTYPE_OPTION ( " Echo " , __tr_no_lookup ( " Normal text " ) , KVI_SMALLICON_NONE , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION_SPEC ( " Selection " , __tr_no_lookup ( " Selection " ) , KVI_SMALLICON_NONE , KVI_WHITE , KVI_BLACK , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION_SPEC ( " Highlight " , __tr_no_lookup ( " Highlighted text " ) , KVI_SMALLICON_ALERT , KVI_WHITE , KVI_BLACK , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION_SPEC ( " Url " , __tr_no_lookup ( " URL foreground " ) , KVI_SMALLICON_NONE , KVI_BLUE , KVI_TRANSPARENT , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION_SPEC ( " Link " , __tr_no_lookup ( " Link overlay foreground " ) , KVI_SMALLICON_NONE , KVI_BLUE , KVI_TRANSPARENT , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION_SPEC ( " ParserError " , __tr_no_lookup ( " Parser error " ) , KVI_SMALLICON_PARSERERROR , KVI_RED , KVI_TRANSPARENT , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION_SPEC ( " ParserWarning " , __tr_no_lookup ( " Parser warning " ) , KVI_SMALLICON_PARSERWARNING , KVI_RED , KVI_TRANSPARENT , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " HostLookup " , __tr_no_lookup ( " Host lookup result " ) , KVI_SMALLICON_SERVER , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " SocketMessage " , __tr_no_lookup ( " Socket message " ) , KVI_SMALLICON_SOCKETMESSAGE , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " SocketWarning " , __tr_no_lookup ( " Socket warning " ) , KVI_SMALLICON_SOCKETWARNING , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION_SPEC ( " SocketError " , __tr_no_lookup ( " Socket error " ) , KVI_SMALLICON_SOCKETERROR , KVI_RED , KVI_TRANSPARENT , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION_SPEC ( " SystemError " , __tr_no_lookup ( " System error " ) , KVI_SMALLICON_SYSTEMERROR , KVI_RED , KVI_TRANSPARENT , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " Raw " , __tr_no_lookup ( " Raw data to server " ) , KVI_SMALLICON_RAW , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " Connection " , __tr_no_lookup ( " Connection status " ) , KVI_SMALLICON_WORLD , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " SystemWarning " , __tr_no_lookup ( " System warning " ) , KVI_SMALLICON_SYSTEMWARNING , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " SystemMessage " , __tr_no_lookup ( " System message " ) , KVI_SMALLICON_SYSTEMMESSAGE , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " UnhandledReply " , __tr_no_lookup ( " Unhandled server reply " ) , KVI_SMALLICON_UNHANDLED , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " ServerInfo " , __tr_no_lookup ( " Server information " ) , KVI_SMALLICON_SERVERINFO , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " Motd " , __tr_no_lookup ( " Server Message of the Day " ) , KVI_SMALLICON_MOTD , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " ServerPing " , __tr_no_lookup ( " Server ping " ) , KVI_SMALLICON_SERVERPING , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " Join " , __tr_no_lookup ( " Join message " ) , KVI_SMALLICON_JOIN , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " Part " , __tr_no_lookup ( " Part message " ) , KVI_SMALLICON_PART , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " Unrecognized " , __tr_no_lookup ( " Unrecognized/broken message " ) , KVI_SMALLICON_UNRECOGNIZED , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " Topic " , __tr_no_lookup ( " Topic message " ) , KVI_SMALLICON_TOPIC , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " OwnPrivateMessage " , __tr_no_lookup ( " Own private message " ) , KVI_SMALLICON_OWNPRIVMSG , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " ChannelPrivateMessage " , __tr_no_lookup ( " Channel private message " ) , KVI_SMALLICON_CHANPRIVMSG , KVI_MSGTYPE_LEVEL_4 ) ,
MSGTYPE_OPTION ( " QueryPrivateMessage " , __tr_no_lookup ( " Query private message " ) , KVI_SMALLICON_TQUERYPRIVMSG , KVI_MSGTYPE_LEVEL_4 ) ,
MSGTYPE_OPTION ( " CtcpReply " , __tr_no_lookup ( " CTCP reply " ) , KVI_SMALLICON_CTCPREPLY , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " CtcpRequestReplied " , __tr_no_lookup ( " CTCP request replied " ) , KVI_SMALLICON_CTCPREQUESTREPLIED , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " CtcpRequestIgnored " , __tr_no_lookup ( " CTCP request ignored " ) , KVI_SMALLICON_CTCPREQUESTIGNORED , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " CtcpRequestFlood " , __tr_no_lookup ( " CTCP request flood warning " ) , KVI_SMALLICON_CTCPREQUESTFLOOD , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " CtcpRequestUnknown " , __tr_no_lookup ( " CTCP request unknown " ) , KVI_SMALLICON_CTCPREQUESTUNKNOWN , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " Action " , __tr_no_lookup ( " User action " ) , KVI_SMALLICON_ACTION , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " AvatarChange " , __tr_no_lookup ( " Avatar change " ) , KVI_SMALLICON_AVATAR , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " Quit " , __tr_no_lookup ( " Quit message " ) , KVI_SMALLICON_TQUIT , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " Split " , __tr_no_lookup ( " Split message " ) , KVI_SMALLICON_SPLIT , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " QuitSplit " , __tr_no_lookup ( " Quit on netsplit message " ) , KVI_SMALLICON_TQUITSPLIT , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " Nick " , __tr_no_lookup ( " Nick changes " ) , KVI_SMALLICON_NICK , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " Op " , __tr_no_lookup ( " +o mode change " ) , KVI_SMALLICON_OP , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " Deop " , __tr_no_lookup ( " -o mode change " ) , KVI_SMALLICON_DEOP , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " Voice " , __tr_no_lookup ( " +v mode change " ) , KVI_SMALLICON_VOICE , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " Devoice " , __tr_no_lookup ( " -v mode change " ) , KVI_SMALLICON_DEVOICE , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " Mode " , __tr_no_lookup ( " Multiple user mode change " ) , KVI_SMALLICON_MODE , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " Key " , __tr_no_lookup ( " Channel key change " ) , KVI_SMALLICON_KEY , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " Limit " , __tr_no_lookup ( " Channel limit change " ) , KVI_SMALLICON_LIMIT , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " Ban " , __tr_no_lookup ( " +b mode change " ) , KVI_SMALLICON_BAN , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " Unban " , __tr_no_lookup ( " -b mode change " ) , KVI_SMALLICON_UNBAN , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " BanExcept " , __tr_no_lookup ( " +e mode change " ) , KVI_SMALLICON_BANEXCEPT , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " BanUnexcept " , __tr_no_lookup ( " -e mode change " ) , KVI_SMALLICON_BANUNEXCEPT , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " InviteExcept " , __tr_no_lookup ( " +I mode change " ) , KVI_SMALLICON_INVITEEXCEPT , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " InviteUnexcept " , __tr_no_lookup ( " -I mode change " ) , KVI_SMALLICON_INVITEUNEXCEPT , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " ChanMode " , __tr_no_lookup ( " Multiple channel mode change " ) , KVI_SMALLICON_CHANMODE , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " Who " , __tr_no_lookup ( " Who reply " ) , KVI_SMALLICON_WHO , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " DccRequest " , __tr_no_lookup ( " DCC request " ) , KVI_SMALLICON_DCCREQUEST , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " DccMsg " , __tr_no_lookup ( " DCC message " ) , KVI_SMALLICON_DCCMSG , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " DccError " , __tr_no_lookup ( " DCC error " ) , KVI_SMALLICON_DCCERROR , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " NicknameProblem " , __tr_no_lookup ( " Nickname problem " ) , KVI_SMALLICON_NICKNAMEPROBLEM , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " WhoisUser " , __tr_no_lookup ( " Whois user reply " ) , KVI_SMALLICON_WHOISUSER , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " WhoisChannels " , __tr_no_lookup ( " Whois channels reply " ) , KVI_SMALLICON_WHOISCHANNELS , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " WhoisIdle " , __tr_no_lookup ( " Whois idle reply " ) , KVI_SMALLICON_WHOISIDLE , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " WhoisServer " , __tr_no_lookup ( " Whois server reply " ) , KVI_SMALLICON_WHOISSERVER , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " WhoisOther " , __tr_no_lookup ( " Whois other reply " ) , KVI_SMALLICON_WHOISOTHER , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " CreationTime " , __tr_no_lookup ( " Channel creation time reply " ) , KVI_SMALLICON_TIME , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " NotifyOnLine " , __tr_no_lookup ( " Notify list joins " ) , KVI_SMALLICON_NOTIFYONLINE , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " NotifyOffLine " , __tr_no_lookup ( " Notify list leaves " ) , KVI_SMALLICON_NOTIFYOFFLINE , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " OwnPrivmsgCrypted " , __tr_no_lookup ( " Own encrypted private message " ) , KVI_SMALLICON_OWNPRIVMSGCRYPTED , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " ChanPrivmsgCrypted " , __tr_no_lookup ( " Channel encrypted private message " ) , KVI_SMALLICON_CHANPRIVMSGCRYPTED , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " QueryPrivmsgCrypted " , __tr_no_lookup ( " Query encrypted private message " ) , KVI_SMALLICON_TQUERYPRIVMSGCRYPTED , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " DccChatMsg " , __tr_no_lookup ( " DCC chat message " ) , KVI_SMALLICON_DCCCHATMSG , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " DccChatMsgCrypted " , __tr_no_lookup ( " Encrypted DCC chat message " ) , KVI_SMALLICON_DCCCHATMSGCRYPTED , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " Irc " , __tr_no_lookup ( " Login operations completed " ) , KVI_SMALLICON_IRC , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " Kick " , __tr_no_lookup ( " Kick action " ) , KVI_SMALLICON_KICK , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " Links " , __tr_no_lookup ( " Links reply " ) , KVI_SMALLICON_LINKS , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " Spam " , __tr_no_lookup ( " Spam report " ) , KVI_SMALLICON_SPAM , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " Icq " , __tr_no_lookup ( " ICQ message " ) , KVI_SMALLICON_ICQ , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " IcqMessage " , __tr_no_lookup ( " ICQ user-message " ) , KVI_SMALLICON_MESSAGE , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " IcqMessageSent " , __tr_no_lookup ( " Outgoing ICQ user-message " ) , KVI_SMALLICON_MESSAGESENT , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " ChannelNotice " , __tr_no_lookup ( " Channel notice " ) , KVI_SMALLICON_CHANNELNOTICE , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " ChannelNoticeCrypted " , __tr_no_lookup ( " Encrypted channel notice " ) , KVI_SMALLICON_CHANNELNOTICECRYPTED , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " QueryNotice " , __tr_no_lookup ( " Query notice " ) , KVI_SMALLICON_TQUERYNOTICE , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " QueryNoticeCrypted " , __tr_no_lookup ( " Encrypted query notice " ) , KVI_SMALLICON_TQUERYNOTICECRYPTED , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " ServerNotice " , __tr_no_lookup ( " Server notice " ) , KVI_SMALLICON_SERVERNOTICE , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " HalfOp " , __tr_no_lookup ( " Halfop mode change " ) , KVI_SMALLICON_HALFOP , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " CtcpReplyUnknown " , __tr_no_lookup ( " Unknown CTCP reply " ) , KVI_SMALLICON_CTCPREPLYUNKNOWN , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " NickServ " , __tr_no_lookup ( " NickServ message " ) , KVI_SMALLICON_NICKSERV , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " ChanServ " , __tr_no_lookup ( " ChanServ message " ) , KVI_SMALLICON_CHANSERV , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " Away " , __tr_no_lookup ( " Away message " ) , KVI_SMALLICON_AWAY , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " Ident " , __tr_no_lookup ( " Ident message " ) , KVI_SMALLICON_IDENT , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " List " , __tr_no_lookup ( " Channel list message " ) , KVI_SMALLICON_LIST , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " HalfDeOp " , __tr_no_lookup ( " Half-deop mode change " ) , KVI_SMALLICON_HALFDEOP , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " Invite " , __tr_no_lookup ( " Invite message " ) , KVI_SMALLICON_INVITE , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " Multimedia " , __tr_no_lookup ( " Multimedia message " ) , KVI_SMALLICON_MULTIMEDIA , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " QueryTrace " , __tr_no_lookup ( " Query trace message " ) , KVI_SMALLICON_TQUERYTRACE , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " Wallops " , __tr_no_lookup ( " Wallops message " ) , KVI_SMALLICON_WALLOPS , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " JoinError " , __tr_no_lookup ( " Join error message " ) , KVI_SMALLICON_NOCHANNEL , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " BroadcastPrivmsg " , __tr_no_lookup ( " Broadcast private message " ) , KVI_SMALLICON_BROADCASTPRIVMSG , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " BroadcastNotice " , __tr_no_lookup ( " Broadcast notice " ) , KVI_SMALLICON_BROADCASTNOTICE , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " MeKick " , __tr_no_lookup ( " Am kicked " ) , KVI_SMALLICON_MEKICK , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeOp " , __tr_no_lookup ( " Am op'd " ) , KVI_SMALLICON_MEOP , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeVoice " , __tr_no_lookup ( " Am voiced " ) , KVI_SMALLICON_MEVOICE , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeDeOp " , __tr_no_lookup ( " Am deop'd " ) , KVI_SMALLICON_MEDEOP , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeDeVoice " , __tr_no_lookup ( " Am devoiced " ) , KVI_SMALLICON_MEDEVOICE , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeHalfOp " , __tr_no_lookup ( " Am halfop'd " ) , KVI_SMALLICON_MEHALFOP , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeDeHalfOp " , __tr_no_lookup ( " Am de-halfop'd " ) , KVI_SMALLICON_MEDEHALFOP , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeBan " , __tr_no_lookup ( " Ban matching my mask " ) , KVI_SMALLICON_MEBAN , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeUnban " , __tr_no_lookup ( " Unban matching my mask " ) , KVI_SMALLICON_MEUNBAN , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeBanExcept " , __tr_no_lookup ( " Ban exception matching my mask " ) , KVI_SMALLICON_MEBANEXCEPT , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeBanUnExcept " , __tr_no_lookup ( " Ban unexception matching my mask " ) , KVI_SMALLICON_MEBANUNEXCEPT , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeInviteExcept " , __tr_no_lookup ( " Invite exception matching my mask " ) , KVI_SMALLICON_MEINVITEEXCEPT , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeInviteUnexcept " , __tr_no_lookup ( " Invite unexception matching my mask " ) , KVI_SMALLICON_MEINVITEUNEXCEPT , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " Ignore " , __tr_no_lookup ( " Ignored user message " ) , KVI_SMALLICON_IGNORE , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " Stats " , __tr_no_lookup ( " Server statistics " ) , KVI_SMALLICON_STATS , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " SSL " , __tr_no_lookup ( " SSL message " ) , KVI_SMALLICON_SSL , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " Search " , __tr_no_lookup ( " Search " ) , KVI_SMALLICON_SEARCH , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " GenericSuccess " , __tr_no_lookup ( " Generic success " ) , KVI_SMALLICON_CYANSQUARE , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION ( " GenericStatus " , __tr_no_lookup ( " Generic status " ) , KVI_SMALLICON_GREENSQUARE , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " GenericVerbose " , __tr_no_lookup ( " Generic verbose message " ) , KVI_SMALLICON_DKGREENSQUARE , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " GenericWarning " , __tr_no_lookup ( " Generic warning " ) , KVI_SMALLICON_YELLOWSQUARE , KVI_MSGTYPE_LEVEL_3 ) ,
MSGTYPE_OPTION_SPEC ( " GenericError " , __tr_no_lookup ( " Generic error " ) , KVI_SMALLICON_REDSQUARE , KVI_RED , KVI_TRANSPARENT , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION_SPEC ( " GenericCritical " , __tr_no_lookup ( " Generic critical error " ) , KVI_SMALLICON_BLACKSQUARE , KVI_RED , KVI_TRANSPARENT , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " ChanAdmin " , __tr_no_lookup ( " Chan admin status set " ) , KVI_SMALLICON_CHANADMIN , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " ChanUnAdmin " , __tr_no_lookup ( " Chan admin status unset " ) , KVI_SMALLICON_CHANUNADMIN , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeChanAdmin " , __tr_no_lookup ( " Own chan admin status set " ) , KVI_SMALLICON_MECHANADMIN , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeChanUnAdmin " , __tr_no_lookup ( " Own chan admin status unset " ) , KVI_SMALLICON_MECHANUNADMIN , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " UserOp " , __tr_no_lookup ( " Userop mode change " ) , KVI_SMALLICON_USEROP , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " UserDeOp " , __tr_no_lookup ( " User-deop mode change " ) , KVI_SMALLICON_DEUSEROP , KVI_MSGTYPE_LEVEL_2 ) ,
MSGTYPE_OPTION ( " MeUserOp " , __tr_no_lookup ( " Am userop'd " ) , KVI_SMALLICON_MEUSEROP , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeDeUserOp " , __tr_no_lookup ( " Am de-userop'd " ) , KVI_SMALLICON_MEDEUSEROP , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION_SPEC ( " Verbose " , __tr_no_lookup ( " Verbose/Debug " ) , KVI_SMALLICON_BINARYTEXT , KVI_DARKGRAY , KVI_TRANSPARENT , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " ChanOwner " , __tr_no_lookup ( " Chan owner status set " ) , KVI_SMALLICON_CHANOWNER , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " ChanUnOwner " , __tr_no_lookup ( " Chan owner status unset " ) , KVI_SMALLICON_CHANUNOWNER , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeChanOwner " , __tr_no_lookup ( " Own chan owner status set " ) , KVI_SMALLICON_MECHANOWNER , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION ( " MeChanUnOwner " , __tr_no_lookup ( " Own chan owner status unset " ) , KVI_SMALLICON_MECHANUNOWNER , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION_SPEC ( " ServerError " , __tr_no_lookup ( " Server error " ) , KVI_SMALLICON_SERVERERROR , KVI_RED , KVI_TRANSPARENT , KVI_MSGTYPE_LEVEL_5 ) ,
MSGTYPE_OPTION_SPEC ( " Help " , __tr_no_lookup ( " Help " ) , KVI_SMALLICON_HELP , KVI_DARKGREEN , KVI_TRANSPARENT , KVI_MSGTYPE_LEVEL_1 ) ,
MSGTYPE_OPTION ( " TextEncoding " , __tr_no_lookup ( " Text Encoding Server message " ) , KVI_SMALLICON_TEXTENCODING , KVI_MSGTYPE_LEVEL_1 ) ,
// TODO: add icon and check what level means
// Pragma: the message level is a warning level that is rendered in the taskbar
// messages with higher level are rendered with more visible color (i.e. red)
// messages with very high level might flash the tray and end up in the notifier
// level 1 or 2 for standard torrent messages is ok
MSGTYPE_OPTION ( " BitTorrent " , __tr_no_lookup ( " BitTorrent message " ) , KVI_SMALLICON_MULTIMEDIA , KVI_MSGTYPE_LEVEL_2 )
} ;
static const char * options_section_table [ KVI_NUM_OPTION_SECT_FLAGS ] =
{
" None " , " Frame " , " Mdi " , " Windows " ,
" TaskBar " , " IrcView " , " MsgType " , " MircColor " ,
" Input " , " UserParser " , " Connection " , " IrcSocket " ,
" User " , " UserListView " , " Label " , " Modules " ,
" Ctcp " , " Dcc " , " Gui " , " IrcToolBar " ,
" Logging " , " AntiSpam " , " Avatar " , " Url " ,
" Recent " , " Geometry "
} ;
static void config_set_section ( int flag , KviConfig * cfg )
{
int index = flag & KviOption_sectMask ;
if ( ( index < KVI_NUM_OPTION_SECT_FLAGS ) & & ( index > = 0 ) )
{
cfg - > setGroup ( options_section_table [ index ] ) ;
} else cfg - > setGroup ( " " ) ; // Default group
}
void KviApp : : loadOptions ( )
{
KviStr buffer ;
if ( getReadOnlyConfigPath ( buffer , KVI_CONFIGFILE_MAIN ) )
{
KviConfig cfg ( buffer . ptr ( ) , KviConfig : : Read ) ;
int prg = 12 ;
int i ;
# define READ_OPTIONS(_num,_table,_readFnc) \
for ( i = 0 ; i < _num ; i + + ) \
{ \
config_set_section ( _table [ i ] . flags , & cfg ) ; \
_table [ i ] . option = cfg . _readFnc ( _table [ i ] . name , _table [ i ] . option ) ; \
} \
prg + = 3 ; \
KVI_SPLASH_SET_PROGRESS ( prg )
READ_OPTIONS ( KVI_NUM_RECT_OPTIONS , g_rectOptionsTable , readRectEntry )
READ_OPTIONS ( KVI_NUM_BOOL_OPTIONS , g_boolOptionsTable , readBoolEntry )
READ_OPTIONS ( KVI_NUM_STRING_OPTIONS , g_stringOptionsTable , readTQStringEntry )
READ_OPTIONS ( KVI_NUM_COLOR_OPTIONS , g_colorOptionsTable , readColorEntry )
READ_OPTIONS ( KVI_NUM_PIXMAP_OPTIONS , g_pixmapOptionsTable , readPixmapEntry )
READ_OPTIONS ( KVI_NUM_UINT_OPTIONS , g_uintOptionsTable , readUIntEntry )
READ_OPTIONS ( KVI_NUM_FONT_OPTIONS , g_fontOptionsTable , readFontEntry )
READ_OPTIONS ( KVI_NUM_MSGTYPE_OPTIONS , g_msgtypeOptionsTable , readMsgTypeEntry )
READ_OPTIONS ( KVI_NUM_STRINGLIST_OPTIONS , g_stringlistOptionsTable , readStringListEntry )
READ_OPTIONS ( KVI_NUM_MIRCCOLOR_OPTIONS , g_mirccolorOptionsTable , readColorEntry )
READ_OPTIONS ( KVI_NUM_ICCOLOR_OPTIONS , g_iccolorOptionsTable , readColorEntry )
for ( i = 0 ; i < KVI_NUM_STRING_OPTIONS ; i + + )
{
if ( g_stringOptionsTable [ i ] . flags & KviOption_encodePath )
KviStringConversion : : decodePath ( g_stringOptionsTable [ i ] . option ) ;
}
for ( i = 0 ; i < KVI_NUM_STRINGLIST_OPTIONS ; i + + )
{
if ( g_stringlistOptionsTable [ i ] . flags & KviOption_encodePath )
KviStringConversion : : decodePath ( g_stringlistOptionsTable [ i ] . option ) ;
}
# undef READ_OPTIONS
} // else already have the defaults
}
void KviApp : : saveOptions ( )
{
TQString buffer ;
saveRecentChannels ( ) ;
getLocalKvircDirectory ( buffer , Config , KVI_CONFIGFILE_MAIN ) ;
KviConfig cfg ( buffer , KviConfig : : Write ) ;
int i ;
# define WRITE_OPTIONS(_num,_table) \
for ( i = 0 ; i < _num ; i + + ) \
{ \
config_set_section ( _table [ i ] . flags , & cfg ) ; \
cfg . writeEntry ( _table [ i ] . name , _table [ i ] . option ) ; \
}
WRITE_OPTIONS ( KVI_NUM_RECT_OPTIONS , g_rectOptionsTable )
WRITE_OPTIONS ( KVI_NUM_BOOL_OPTIONS , g_boolOptionsTable )
for ( i = 0 ; i < KVI_NUM_STRING_OPTIONS ; i + + )
{
if ( g_stringOptionsTable [ i ] . flags & KviOption_encodePath )
KviStringConversion : : encodePath ( g_stringOptionsTable [ i ] . option ) ;
}
WRITE_OPTIONS ( KVI_NUM_STRING_OPTIONS , g_stringOptionsTable )
for ( i = 0 ; i < KVI_NUM_STRING_OPTIONS ; i + + )
{
if ( g_stringOptionsTable [ i ] . flags & KviOption_encodePath )
KviStringConversion : : decodePath ( g_stringOptionsTable [ i ] . option ) ;
}
WRITE_OPTIONS ( KVI_NUM_COLOR_OPTIONS , g_colorOptionsTable )
WRITE_OPTIONS ( KVI_NUM_PIXMAP_OPTIONS , g_pixmapOptionsTable )
WRITE_OPTIONS ( KVI_NUM_UINT_OPTIONS , g_uintOptionsTable )
WRITE_OPTIONS ( KVI_NUM_FONT_OPTIONS , g_fontOptionsTable )
WRITE_OPTIONS ( KVI_NUM_MSGTYPE_OPTIONS , g_msgtypeOptionsTable )
for ( i = 0 ; i < KVI_NUM_STRINGLIST_OPTIONS ; i + + )
{
if ( g_stringlistOptionsTable [ i ] . flags & KviOption_encodePath )
KviStringConversion : : encodePath ( g_stringlistOptionsTable [ i ] . option ) ;
}
WRITE_OPTIONS ( KVI_NUM_STRINGLIST_OPTIONS , g_stringlistOptionsTable )
for ( i = 0 ; i < KVI_NUM_STRINGLIST_OPTIONS ; i + + )
{
if ( g_stringlistOptionsTable [ i ] . flags & KviOption_encodePath )
KviStringConversion : : decodePath ( g_stringlistOptionsTable [ i ] . option ) ;
}
WRITE_OPTIONS ( KVI_NUM_MIRCCOLOR_OPTIONS , g_mirccolorOptionsTable )
WRITE_OPTIONS ( KVI_NUM_ICCOLOR_OPTIONS , g_iccolorOptionsTable )
# undef WRITE_OPTIONS
}
# undef WRITE_OPTIONS
# define WRITE_OPTIONS(_num,_table) \
for ( i = 0 ; i < _num ; i + + ) \
{ \
if ( _table [ i ] . flags & KviOption_groupTheme ) \
cfg . writeEntry ( _table [ i ] . name , _table [ i ] . option ) ; \
}
namespace KviTheme
{
// utility functions for the KviTheme namespace (kvi_theme.h)
// that are implemented here for convenience (in saving the options)
bool save ( KviThemeInfo & options )
{
TQString szD = options . absoluteDirectory ( ) ;
if ( szD . isEmpty ( ) )
{
options . setLastError ( __tr2qs ( " Missing absolute directory for the theme information " ) ) ;
return false ;
}
if ( ! KviFileUtils : : directoryExists ( szD ) )
{
if ( ! KviFileUtils : : makeDir ( szD ) )
{
options . setLastError ( __tr2qs ( " Failed to create the theme directory " ) ) ;
return false ;
}
}
szD . append ( KVI_PATH_SEPARATOR_CHAR ) ;
szD . append ( KVI_THEMEINFO_FILE_NAME ) ;
if ( ! options . save ( szD ) )
{
return false ;
}
szD = options . absoluteDirectory ( ) ;
szD . append ( KVI_PATH_SEPARATOR_CHAR ) ;
szD . append ( KVI_THEMEDATA_FILE_NAME ) ;
KviConfig cfg ( szD , KviConfig : : Write ) ;
cfg . setGroup ( KVI_THEMEDATA_CONFIG_GROUP ) ;
int i ;
WRITE_OPTIONS ( KVI_NUM_RECT_OPTIONS , g_rectOptionsTable )
WRITE_OPTIONS ( KVI_NUM_BOOL_OPTIONS , g_boolOptionsTable )
WRITE_OPTIONS ( KVI_NUM_STRING_OPTIONS , g_stringOptionsTable )
WRITE_OPTIONS ( KVI_NUM_COLOR_OPTIONS , g_colorOptionsTable )
WRITE_OPTIONS ( KVI_NUM_UINT_OPTIONS , g_uintOptionsTable )
WRITE_OPTIONS ( KVI_NUM_FONT_OPTIONS , g_fontOptionsTable )
WRITE_OPTIONS ( KVI_NUM_MSGTYPE_OPTIONS , g_msgtypeOptionsTable )
WRITE_OPTIONS ( KVI_NUM_STRINGLIST_OPTIONS , g_stringlistOptionsTable )
WRITE_OPTIONS ( KVI_NUM_MIRCCOLOR_OPTIONS , g_mirccolorOptionsTable )
WRITE_OPTIONS ( KVI_NUM_ICCOLOR_OPTIONS , g_iccolorOptionsTable )
# undef WRITE_OPTIONS
// the pixmap options need special processing
for ( i = 0 ; i < KVI_NUM_PIXMAP_OPTIONS ; i + + )
{
if ( g_pixmapOptionsTable [ i ] . flags & KviOption_groupTheme )
{
if ( g_pixmapOptionsTable [ i ] . option . pixmap ( ) )
{
TQString szPixPath = options . absoluteDirectory ( ) ;
szPixPath . append ( KVI_PATH_SEPARATOR_CHAR ) ;
TQString szPixName = g_pixmapOptionsTable [ i ] . name ;
szPixName + = " .png " ;
szPixPath + = szPixName ;
if ( g_pixmapOptionsTable [ i ] . option . pixmap ( ) - > save ( szPixPath , " PNG " ) )
{
cfg . writeEntry ( g_pixmapOptionsTable [ i ] . name , szPixName ) ;
} else {
// we ignore this error for now
debug ( " failed to save %s " , szPixPath . utf8 ( ) . data ( ) ) ;
cfg . writeEntry ( g_pixmapOptionsTable [ i ] . name , " " ) ;
}
} else {
cfg . writeEntry ( g_pixmapOptionsTable [ i ] . name , " " ) ;
}
}
}
cfg . writeEntry ( " stringIconThemeSubdir " , options . subdirectory ( ) ) ;
// find all the "kvi_bigicon" images that we can find in the main pics directory
TQString szPicsPath ;
g_pApp - > getGlobalKvircDirectory ( szPicsPath , KviApp : : Pics ) ;
TQDir d ( szPicsPath ) ;
TQStringList sl = d . entryList ( " kvi_bigicon_*.png " , TQDir : : Files ) ;
for ( TQStringList : : Iterator it = sl . begin ( ) ; it ! = sl . end ( ) ; it + + )
{
KviCachedPixmap * p = g_pIconManager - > getPixmapWithCache ( * it ) ;
if ( p )
{
TQString szPixPath = options . absoluteDirectory ( ) ;
szPixPath . append ( KVI_PATH_SEPARATOR_CHAR ) ;
szPixPath + = * it ;
if ( ! KviFileUtils : : copyFile ( p - > path ( ) , szPixPath ) )
{
options . setLastError ( __tr2qs ( " Failed to save one of the theme images " ) ) ;
return false ;
}
}
}
szD = options . absoluteDirectory ( ) ;
szD . append ( KVI_PATH_SEPARATOR_CHAR ) ;
szD . append ( KVI_SMALLICONS_SUBDIRECTORY ) ;
if ( ! KviFileUtils : : makeDir ( szD ) )
{
options . setLastError ( __tr2qs ( " Failed to create the theme subdirectory " ) ) ;
return false ;
}
// We actually need to *save* the small icons since
// we have a compatibility mode that can load them from
// the old format kvi_smallicon_XY.png multiimage libraries.
for ( int j = 0 ; j < KVI_NUM_SMALL_ICONS ; j + + )
{
TQPixmap * pix = g_pIconManager - > getSmallIcon ( j ) ;
TQString szPixPath = options . absoluteDirectory ( ) ;
szPixPath . append ( KVI_PATH_SEPARATOR_CHAR ) ;
szPixPath . append ( KVI_SMALLICONS_SUBDIRECTORY ) ;
szPixPath . append ( KVI_PATH_SEPARATOR_CHAR ) ;
szPixPath . append ( " kcs_ " ) ;
szPixPath . append ( g_pIconManager - > getSmallIconName ( j ) ) ;
szPixPath . append ( " .png " ) ;
if ( ! pix - > save ( szPixPath , " PNG " , 90 ) )
{
options . setLastError ( __tr2qs ( " Failed to save one of the theme images " ) ) ;
return false ;
}
}
return true ;
}
bool load ( const TQString & themeDir , KviThemeInfo & buffer )
{
if ( ! buffer . loadFromDirectory ( themeDir ) )
return false ; // makes sure that themedata exists too
// reset the current theme subdir
KVI_OPTION_STRING ( KviOption_stringIconThemeSubdir ) = " " ;
// reset the splash screen pointer
TQString szPointerFile ;
g_pApp - > getLocalKvircDirectory ( szPointerFile , KviApp : : Themes , " current-splash " ) ;
KviFileUtils : : removeFile ( szPointerFile ) ;
TQString szD = themeDir ;
KviTQString : : ensureLastCharIs ( szD , KVI_PATH_SEPARATOR_CHAR ) ;
szD . append ( KVI_THEMEDATA_FILE_NAME ) ;
KviConfig cfg ( szD , KviConfig : : Read ) ;
cfg . setGroup ( KVI_THEMEDATA_CONFIG_GROUP ) ;
int i ;
int iResetFlags = 0 ;
# undef READ_OPTIONS
# define READ_OPTIONS(_num,_table,_readFnc) \
for ( i = 0 ; i < _num ; i + + ) \
{ \
if ( _table [ i ] . flags & KviOption_groupTheme ) \
{ \
if ( cfg . hasKey ( _table [ i ] . name ) ) \
{ \
iResetFlags | = ( _table [ i ] . flags & KviOption_resetMask ) ; \
_table [ i ] . option = cfg . _readFnc ( _table [ i ] . name , _table [ i ] . option ) ; \
} \
} \
}
# define READ_ALL_OPTIONS(_num,_table,_readFnc) \
for ( i = 0 ; i < _num ; i + + ) \
{ \
if ( cfg . hasKey ( _table [ i ] . name ) ) \
{ \
iResetFlags | = ( _table [ i ] . flags & KviOption_resetMask ) ; \
_table [ i ] . option = cfg . _readFnc ( _table [ i ] . name , _table [ i ] . option ) ; \
} \
}
READ_OPTIONS ( KVI_NUM_RECT_OPTIONS , g_rectOptionsTable , readRectEntry )
READ_OPTIONS ( KVI_NUM_BOOL_OPTIONS , g_boolOptionsTable , readBoolEntry )
READ_OPTIONS ( KVI_NUM_STRING_OPTIONS , g_stringOptionsTable , readTQStringEntry )
READ_OPTIONS ( KVI_NUM_COLOR_OPTIONS , g_colorOptionsTable , readColorEntry )
READ_OPTIONS ( KVI_NUM_UINT_OPTIONS , g_uintOptionsTable , readUIntEntry )
READ_OPTIONS ( KVI_NUM_FONT_OPTIONS , g_fontOptionsTable , readFontEntry )
READ_ALL_OPTIONS ( KVI_NUM_MSGTYPE_OPTIONS , g_msgtypeOptionsTable , readMsgTypeEntry )
READ_OPTIONS ( KVI_NUM_STRINGLIST_OPTIONS , g_stringlistOptionsTable , readStringListEntry )
READ_OPTIONS ( KVI_NUM_MIRCCOLOR_OPTIONS , g_mirccolorOptionsTable , readColorEntry )
READ_OPTIONS ( KVI_NUM_ICCOLOR_OPTIONS , g_iccolorOptionsTable , readColorEntry )
# undef READ_OPTIONS
# undef READ_ALL_OPTIONS
KVI_OPTION_STRING ( KviOption_stringIconThemeSubdir ) . stripWhiteSpace ( ) ;
// the pixmap options need special processing
for ( i = 0 ; i < KVI_NUM_PIXMAP_OPTIONS ; i + + )
{
if ( g_pixmapOptionsTable [ i ] . flags & KviOption_groupTheme )
{
if ( cfg . hasKey ( g_pixmapOptionsTable [ i ] . name ) )
{
TQString szVal = cfg . readTQStringEntry ( g_pixmapOptionsTable [ i ] . name , " " ) ;
szVal . stripWhiteSpace ( ) ;
TQString szBuffer ;
if ( ! szVal . isEmpty ( ) )
{
g_pApp - > findImage ( szBuffer , szVal ) ;
} else {
szBuffer = szVal ;
}
KviStringConversion : : fromString ( szBuffer , g_pixmapOptionsTable [ i ] . option ) ;
// reset anyway
iResetFlags | = g_pixmapOptionsTable [ i ] . flags & KviOption_resetMask ;
}
}
}
// create the splash screen pointer if this theme has some pixmaps in it
if ( ! KVI_OPTION_STRING ( KviOption_stringIconThemeSubdir ) . isEmpty ( ) )
KviFileUtils : : writeFile ( szPointerFile , KVI_OPTION_STRING ( KviOption_stringIconThemeSubdir ) ) ;
// force reloading of images anyway
g_pApp - > optionResetUpdate ( iResetFlags | KviOption_resetReloadImages ) ;
return true ;
}
} ;
void KviApp : : listAvailableOptions ( KviWindow * wnd )
{
int i ;
# define LIST_OPTIONS(__txt,__num,__table) \
wnd - > output ( KVI_OUT_SYSTEMMESSAGE , " %c%s%c " , KVI_TEXT_BOLD , __txt , KVI_TEXT_BOLD ) ; \
for ( i = 0 ; i < __num ; i + + ) wnd - > outputNoFmt ( KVI_OUT_SYSTEMMESSAGE , __table [ i ] . name ) ;
LIST_OPTIONS ( __tr ( " Boolean options (1/0) " ) , KVI_NUM_BOOL_OPTIONS , g_boolOptionsTable )
LIST_OPTIONS ( __tr ( " Rectangle options (x,y,width,height) " ) , KVI_NUM_RECT_OPTIONS , g_rectOptionsTable )
LIST_OPTIONS ( __tr ( " String options (string value) " ) , KVI_NUM_STRING_OPTIONS , g_stringOptionsTable )
LIST_OPTIONS ( __tr ( " Color options (#RRGGBB) " ) , KVI_NUM_COLOR_OPTIONS , g_colorOptionsTable )
LIST_OPTIONS ( __tr ( " Mirccolor options (#RRGGBB) " ) , KVI_NUM_MIRCCOLOR_OPTIONS , g_mirccolorOptionsTable )
LIST_OPTIONS ( __tr ( " Irc context color options (#RRGGBB) " ) , KVI_NUM_ICCOLOR_OPTIONS , g_iccolorOptionsTable )
LIST_OPTIONS ( __tr ( " Pixmap options (image path) " ) , KVI_NUM_PIXMAP_OPTIONS , g_pixmapOptionsTable )
LIST_OPTIONS ( __tr ( " Unsigned integer options (unsigned integer constant) " ) , KVI_NUM_UINT_OPTIONS , g_uintOptionsTable )
LIST_OPTIONS ( __tr ( " Font options (family,pointsize,style,charset,weight,flags (biusf)) " ) , KVI_NUM_FONT_OPTIONS , g_fontOptionsTable )
LIST_OPTIONS ( __tr ( " Message color options (image_id,foreground,background,logFlag (0/1)) " ) , KVI_NUM_MSGTYPE_OPTIONS , g_msgtypeOptionsTable )
LIST_OPTIONS ( __tr ( " String list options (comma separated list of strings) " ) , KVI_NUM_STRINGLIST_OPTIONS , g_stringlistOptionsTable )
# undef LIST_OPTIONS
}
//using namespace KviStringConversion;
bool KviApp : : getOptionString ( const char * optName , TQString & buffer )
{
# define GET_OPTION_STRING(__numOpt,__table,__prefix,__prefixLen) \
if ( kvi_strEqualCIN ( optName , __prefix , __prefixLen ) ) \
{ \
for ( int i = 0 ; i < __numOpt ; i + + ) \
{ \
if ( kvi_strEqualCI ( optName , __table [ i ] . name ) ) \
{ \
KviStringConversion : : toString ( __table [ i ] . option , buffer ) ; \
return true ; \
} \
} \
return false ; \
}
// WARNING : stringlist prefix must go BEFORE the string prefix (otherwise it will match)
GET_OPTION_STRING ( KVI_NUM_BOOL_OPTIONS , g_boolOptionsTable , KVI_BOOL_OPTIONS_PREFIX , KVI_BOOL_OPTIONS_PREFIX_LEN )
GET_OPTION_STRING ( KVI_NUM_RECT_OPTIONS , g_rectOptionsTable , KVI_BOOL_OPTIONS_PREFIX , KVI_BOOL_OPTIONS_PREFIX_LEN )
GET_OPTION_STRING ( KVI_NUM_STRINGLIST_OPTIONS , g_stringlistOptionsTable , KVI_STRINGLIST_OPTIONS_PREFIX , KVI_STRINGLIST_OPTIONS_PREFIX_LEN )
GET_OPTION_STRING ( KVI_NUM_STRING_OPTIONS , g_stringOptionsTable , KVI_STRING_OPTIONS_PREFIX , KVI_STRING_OPTIONS_PREFIX_LEN )
GET_OPTION_STRING ( KVI_NUM_COLOR_OPTIONS , g_colorOptionsTable , KVI_COLOR_OPTIONS_PREFIX , KVI_COLOR_OPTIONS_PREFIX_LEN )
GET_OPTION_STRING ( KVI_NUM_MIRCCOLOR_OPTIONS , g_mirccolorOptionsTable , KVI_MIRCCOLOR_OPTIONS_PREFIX , KVI_MIRCCOLOR_OPTIONS_PREFIX_LEN )
GET_OPTION_STRING ( KVI_NUM_ICCOLOR_OPTIONS , g_iccolorOptionsTable , KVI_ICCOLOR_OPTIONS_PREFIX , KVI_ICCOLOR_OPTIONS_PREFIX_LEN )
GET_OPTION_STRING ( KVI_NUM_PIXMAP_OPTIONS , g_pixmapOptionsTable , KVI_PIXMAP_OPTIONS_PREFIX , KVI_PIXMAP_OPTIONS_PREFIX_LEN )
GET_OPTION_STRING ( KVI_NUM_UINT_OPTIONS , g_uintOptionsTable , KVI_UINT_OPTIONS_PREFIX , KVI_UINT_OPTIONS_PREFIX_LEN )
GET_OPTION_STRING ( KVI_NUM_FONT_OPTIONS , g_fontOptionsTable , KVI_FONT_OPTIONS_PREFIX , KVI_FONT_OPTIONS_PREFIX_LEN )
GET_OPTION_STRING ( KVI_NUM_MSGTYPE_OPTIONS , g_msgtypeOptionsTable , KVI_MSGTYPE_OPTIONS_PREFIX , KVI_MSGTYPE_OPTIONS_PREFIX_LEN )
return false ;
# undef GET_OPTION_STRING
}
void KviApp : : optionResetUpdate ( int flags )
{
if ( flags & KviOption_resetReloadImages )
{
g_pIconManager - > reloadImages ( ) ;
emit reloadImages ( ) ;
}
if ( flags & KviOption_resetUpdateAppFont )
{
updateApplicationFont ( ) ;
}
# ifdef COMPILE_PSEUDO_TRANSPARENCY
if ( flags & KviOption_resetUpdatePseudoTransparency )
{
triggerUpdatePseudoTransparency ( ) ;
}
# endif
if ( flags & KviOption_resetRestartIdentd )
{
if ( g_iIdentDaemonRunningUsers )
g_pFrame - > executeInternalCommand ( KVI_INTERNALCOMMAND_IDENT_STOP ) ;
if ( KVI_OPTION_BOOL ( KviOption_boolUseIdentService ) & & ! KVI_OPTION_BOOL ( KviOption_boolUseIdentServiceOnlyOnConnect ) )
g_pFrame - > executeInternalCommand ( KVI_INTERNALCOMMAND_IDENT_START ) ;
}
if ( flags & KviOption_resetUpdateGui )
{
triggerUpdateGui ( ) ;
}
if ( flags & KviOption_resetUpdateTaskBar )
{
g_pFrame - > recreateTaskBar ( ) ;
}
if ( flags & KviOption_resetRestartNotifyList )
{
g_pApp - > restartNotifyLists ( ) ;
}
if ( flags & KviOption_resetRestartLagMeter )
{
g_pApp - > restartLagMeters ( ) ;
}
if ( flags & KviOption_resetRecentChannels )
{
g_pApp - > buildRecentChannels ( ) ;
}
}
bool KviApp : : setOptionValue ( const char * optName , const TQString & value )
{
# define SET_OPTION_VALUE(__numOpt,__table,__prefix,__prefixLen) \
if ( kvi_strEqualCIN ( optName , __prefix , __prefixLen ) ) \
{ \
for ( int i = 0 ; i < __numOpt ; i + + ) \
{ \
if ( kvi_strEqualCI ( optName , __table [ i ] . name ) ) \
{ \
if ( ! KviStringConversion : : fromString ( value , __table [ i ] . option ) ) return false ; \
optionResetUpdate ( __table [ i ] . flags ) ; \
return true ; \
} \
} \
return false ; \
}
SET_OPTION_VALUE ( KVI_NUM_BOOL_OPTIONS , g_boolOptionsTable , KVI_BOOL_OPTIONS_PREFIX , KVI_BOOL_OPTIONS_PREFIX_LEN )
SET_OPTION_VALUE ( KVI_NUM_RECT_OPTIONS , g_rectOptionsTable , KVI_BOOL_OPTIONS_PREFIX , KVI_BOOL_OPTIONS_PREFIX_LEN )
SET_OPTION_VALUE ( KVI_NUM_STRINGLIST_OPTIONS , g_stringlistOptionsTable , KVI_STRINGLIST_OPTIONS_PREFIX , KVI_STRINGLIST_OPTIONS_PREFIX_LEN )
SET_OPTION_VALUE ( KVI_NUM_STRING_OPTIONS , g_stringOptionsTable , KVI_STRING_OPTIONS_PREFIX , KVI_STRING_OPTIONS_PREFIX_LEN )
SET_OPTION_VALUE ( KVI_NUM_COLOR_OPTIONS , g_colorOptionsTable , KVI_COLOR_OPTIONS_PREFIX , KVI_COLOR_OPTIONS_PREFIX_LEN )
SET_OPTION_VALUE ( KVI_NUM_MIRCCOLOR_OPTIONS , g_mirccolorOptionsTable , KVI_MIRCCOLOR_OPTIONS_PREFIX , KVI_MIRCCOLOR_OPTIONS_PREFIX_LEN )
SET_OPTION_VALUE ( KVI_NUM_ICCOLOR_OPTIONS , g_iccolorOptionsTable , KVI_ICCOLOR_OPTIONS_PREFIX , KVI_ICCOLOR_OPTIONS_PREFIX_LEN )
// SET_OPTION_VALUE(KVI_NUM_PIXMAP_OPTIONS,g_pixmapOptionsTable,KVI_PIXMAP_OPTIONS_PREFIX,KVI_PIXMAP_OPTIONS_PREFIX_LEN)
SET_OPTION_VALUE ( KVI_NUM_UINT_OPTIONS , g_uintOptionsTable , KVI_UINT_OPTIONS_PREFIX , KVI_UINT_OPTIONS_PREFIX_LEN )
SET_OPTION_VALUE ( KVI_NUM_FONT_OPTIONS , g_fontOptionsTable , KVI_FONT_OPTIONS_PREFIX , KVI_FONT_OPTIONS_PREFIX_LEN )
SET_OPTION_VALUE ( KVI_NUM_MSGTYPE_OPTIONS , g_msgtypeOptionsTable , KVI_MSGTYPE_OPTIONS_PREFIX , KVI_MSGTYPE_OPTIONS_PREFIX_LEN )
if ( kvi_strEqualCI ( optName , " stringlistRecentChannels " ) )
buildRecentChannels ( ) ;
// The pixmap options have special treating
if ( kvi_strEqualCIN ( optName , KVI_PIXMAP_OPTIONS_PREFIX , KVI_PIXMAP_OPTIONS_PREFIX_LEN ) )
{
// We lookup the image path (so we allow also relative paths for this option type)
TQString szVal = value ;
szVal . stripWhiteSpace ( ) ;
TQString szBuffer ;
if ( ! szVal . isEmpty ( ) )
{
findImage ( szBuffer , szVal ) ;
} else {
szBuffer = szVal ;
}
for ( int i = 0 ; i < KVI_NUM_PIXMAP_OPTIONS ; i + + )
{
if ( kvi_strEqualCI ( optName , g_pixmapOptionsTable [ i ] . name ) )
{
if ( ! KviStringConversion : : fromString ( szBuffer , g_pixmapOptionsTable [ i ] . option ) ) return false ;
optionResetUpdate ( g_pixmapOptionsTable [ i ] . flags ) ;
return true ;
}
}
return false ;
}
return false ;
# undef SET_OPTION_VALUE
}