⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wxwidgets.hpp

📁 uclinux 下的vlc播放器源代码
💻 HPP
字号:
/***************************************************************************** * wxwidgets.hpp: Common headers for the wxwidges interface ***************************************************************************** * Copyright (C) 1999-2005 the VideoLAN team * $Id: wxwidgets.hpp 17436 2006-11-03 12:06:21Z md $ * * Authors: Gildas Bazin <gbazin@videolan.org> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/#ifndef _WXVLC_WIDGETS_H_#define _WXVLC_WIDGETS_H_#ifdef WIN32                                                 /* mingw32 hack */#undef Yield#undef CreateDialog#endif#ifdef _MSC_VER// turn off 'identifier was truncated to '255' characters in the debug info'#   pragma warning( disable:4786 )#endif/* Let vlc take care of the i18n stuff */#define WXINTL_NO_GETTEXT_MACRO#include <vlc/vlc.h>#include <vlc/intf.h>#include "charset.h"#include <wx/wx.h>#define SLIDER_MAX_POS 10000/*#include <wx/listctrl.h>#include <wx/textctrl.h>#include <wx/notebook.h>#include <wx/spinctrl.h>#include <wx/dnd.h>#include <wx/treectrl.h>#include <wx/gauge.h>#include <wx/accel.h>#include <wx/checkbox.h>#include <wx/wizard.h>#include <wx/taskbar.h>#include "vlc_keys.h"*/#if (!wxCHECK_VERSION(2,5,0))typedef long wxTreeItemIdValue;#endifDECLARE_LOCAL_EVENT_TYPE( wxEVT_DIALOG, 0 );DECLARE_LOCAL_EVENT_TYPE( wxEVT_INTF, 1 );/*************************************************************************** * I18N macros ***************************************************************************//* * wxU() is used to convert UTF-8 strings (typically from gettext) * to unicode strings (wchar_t). */#if wxUSE_UNICODE#   define wxU(utf8) wxString(utf8, wxConvUTF8)#else#   define wxU(utf8) wxString(wxConvUTF8.cMB2WC(utf8), *wxConvCurrent)#endif/* * wxL2U() use to convert localized “data” strings (while wxU() would convert * strings from gettext messages). Nowadays, the core use UTF-8 internally * and wxL2U() is only an obsoleted name for wxU(). */#define wxL2U(utf8) wxU(utf8)/* * wxFromLocale() is a replacement for LibVLC FromLocale() that accepts * a wxString. It was originally introduced because wxString::mb_str() * sucks on Linux with Unicode wxWidgets. It then turned out wxWidgets * did not support wc_str() when Unicode was not enabled. * * But heh, that's wxWidgets; you can't really expect it to actually * work, let alone work like its documentation says. * * Unicode needs to be enabled to catch non-ANSI characters on Windows * through wxString::wc_str(); they are lost when using mb_str(). */#if wxUSE_UNICODE#   define wxFromLocale(wxstring) FromWide(wxstring.wc_str())#   define wxLocaleFree(string) free(string)#else#   define wxFromLocale(wxstring) FromLocale(wxstring.mb_str())#   define wxLocaleFree(string) LocaleFree(string)#endif/* From Locale functions to use for File Drop targets ... go figure */#if defined( wxUSE_UNICODE ) && !defined( WIN32 )static inline char *wxDnDFromLocale( const wxChar *stupid ){    /*     * In Unicode mode, wxWidgets will encode file names in the locale     * encoding with each **bytes** (rather than characters) represented     * by a 32 bits unsigned integer. If you are lucky enough to be using     * ISO-8859-1 as your local character encoding, that lame encoding     * scheme happens to be identical to UTF-32 with your arch native     * byte-endianess. If you are using anything else, including not only     * UTF-8 but also Windows-1252(!) and ISO-8859-15(!) or any     * non-western encoding, it obviously fails.     */    size_t n = 0;    while (stupid[n])        n++;    char psz_local[n + 1];    for (size_t i = 0; i <= n; i++)        psz_local[i] = stupid[i];    // Kludge for (broken?) apps that adds a LF at the end of DnD    if ((n >= 1) && (strchr ("\n\r", stupid[n - 1]) != NULL))        psz_local[n - 1] = '\0';    return FromLocaleDup( psz_local );}#   define wxDnDLocaleFree( string ) free( string )#else#   define wxDnDFromLocale( string ) wxFromLocale( string )#   define wxDnDLocaleFree( string ) wxLocaleFree( string )#endif#define WRAPCOUNT 80#define OPEN_NORMAL 0#define OPEN_STREAM 1enum{  ID_CONTROLS_TIMER,  ID_SLIDER_TIMER,};namespace wxvlc {    class WindowSettings;    class VideoWindow;};using namespace wxvlc;class DialogsProvider;class PrefsTreeCtrl;class AutoBuiltPanel;/***************************************************************************** * intf_sys_t: description and status of wxwindows interface *****************************************************************************/struct intf_sys_t{    /* the wx parent window */    wxWindow            *p_wxwindow;    wxIcon              *p_icon;    /* window settings */    WindowSettings      *p_window_settings;    /* special actions */    vlc_bool_t          b_playing;    vlc_bool_t          b_intf_show;                /* interface to be shown */    /* The input thread */    input_thread_t *    p_input;    /* The messages window */    msg_subscription_t* p_sub;                  /* message bank subscription */    /* Playlist management */    int                 i_playing;                 /* playlist selected item */    unsigned            i_playlist_usage;    /* Send an event to show a dialog */    void (*pf_show_dialog) ( intf_thread_t *p_intf, int i_dialog, int i_arg,                             intf_dialog_args_t *p_arg );    /* Popup menu */    wxMenu              *p_popup_menu;    /* Hotkeys */    int                 i_first_hotkey_event;    int                 i_hotkeys;    /* Embedded vout */    VideoWindow         *p_video_window;    wxBoxSizer          *p_video_sizer;    vlc_bool_t          b_video_autosize;    /* Aout */    aout_instance_t     *p_aout;};wxArrayString SeparateEntries( wxString );wxWindow *CreateDialogsProvider( intf_thread_t *p_intf, wxWindow *p_parent );/* * wxWindows keeps dead locking because the timer tries to lock the playlist * when it's already locked somewhere else in the very wxWindows interface * module. Unless someone implements a "vlc_mutex_trylock", we need that. */inline void LockPlaylist( intf_sys_t *p_sys, playlist_t *p_pl ){    if( p_sys->i_playlist_usage++ == 0)        vlc_mutex_lock( &p_pl->object_lock );}inline void UnlockPlaylist( intf_sys_t *p_sys, playlist_t *p_pl ){    if( --p_sys->i_playlist_usage == 0)        vlc_mutex_unlock( &p_pl->object_lock );}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -