【GUIライブラリ】wxWindowsでのひょーん
でのひょーん?
のひょーんスレの予感
以降、このスレは「のひょーん」で1000目指すスレになったとさ。
のむひょん
サンプルのコンパイルできました! ドキュメントを四苦八苦しながら読むと、ライブラリのコンパイルとか書いてあるので、 コンパイルしなきゃ使えないのかな、と思ったらそんななかったようです。 VCのincludeファイル参照に <ライブラリを解凍したdir>\include <ライブラリを解凍したdir>\contrib\include libファイル参照に <ライブラリを解凍したdir>\lib <ライブラリを解凍したdir>\contrib\lib を追加するだけでオッケーでした。
7 :
デフォルトの名無しさん :03/05/06 13:07
ゲームとか作れるの?
10 :
デフォルトの名無しさん :03/05/06 13:28
公式サイトのtranslateで訳してみたが、 天然UIとでた段階で読む気なくした。
11 :
デフォルトの名無しさん :03/05/06 16:26
俺もこのメルマガ読んで始めようとおもったけど MinGWでうまくコンパイルできなかった。
>UNIX/Win32および (若干の制限はありますが) BeOSのもとでは、 >非GUIクラスだけを含むwxBaseライブラリーも構築可能です。 >また、wxWindowsをDLLとしてコンパイルしていない場合にも、 >でき上がる実行可能ファイルは非常に小さくなります。 たとえば、 >最小のサンプル・アプリケーションをWindowsプラットフォーム用の >Microsoft Visual C++ でコンパイルすると、 400 Kバイト未満になります。 最小のサンプルアプリでも400kb近くあんの?
>>12 DelphiとかMFCスタティックリンクに比べれば大したことないと思うけど。
要する労力を考慮すれば商用コンパイラ使ったほうが安上がりだ。
>>14 つーかここコンパイラのスレじゃないでしょ。
とりあえずGtkやQtに比べてドキュメントが少ないから手出すの躊躇してたんだよねぇ。 とりあえずメルマガに期待か?
GUIがネイティブに近いのは気に入った。
どのぐらいまでクロスプラットフォームで使えるのかな。 コンパイルし直せば、Windows、Linuxで使えるレベルまでいくのだろうか。
FOXとどっちがいいの?
>>16 俺もメルマガ登録したけど、こういうのってすぐ配信が止まっちゃうんだよね。
モチベーションが続かないんだろうけど。
22 :
デフォルトの名無しさん :03/05/10 13:07
>1 スレ立ておつかれ いいフレームワークですな、wxWindows。 "child's play. Well, almost."というのも納得。 ただしC++をまともに使えるガキがいればの話ですが。 日本語のドキュメントが少ないのが欠点ですなぁ。 あと、EUC-JP/SJIS <-> UTF-8とかの変換がデフォルトで 無いところとか >6 色々と落とし穴があるので気をつけなされ #VC一般の話でもあるけど。 >7,9 ゲームに制限されない、つうのが正解ですな。やろうと思えば OpenGLで3Dゲームも作れる。 >12 私の環境(VC++.net/最適化Off)で GUI ON wxAPP::OnInit()からfalseで抜けるだけ(Windowも作らない) 全部スタティックリンク(VCランタイムも使わない) のプログラムは656KB……まあ、それなりかな? >20 FOXって、まだ生きてるの?
FLTK使ってる漏れは少数派?
>25 安心しろ。(日本だと)wxWindowsも少数派。 FLTKもいいツールキットだよね。前にAgenda VRでプログラムしたときに 使ったことがある。でも、FLTKって、MS-Winに対応していたっけ? Xだけだった樣な気がするけど……
27 :
デフォルトの名無しさん :03/05/10 14:48
>>23 参考になる資料サンクス。
ちょっと触ってみよっかなぁ。
FOXのWebページ見てみたけど、主な違いは ・対応プラットフォーム -wxWindowsはMacに対応 ・Linux上で必要になるライブラリ -wxWindowsはGTK+/Motifが必要 ・ライセンス -wxWindowsはスタティックリンクしたバイナリをソース無しで配付可能 ・ライブラリの対応範囲 ・プログラムスタイル -wxWindowsはクラスを継承してプログラムするスタイル。 main関数すら隠蔽しているし。 -wxWindowsはマクロをバリバリ使ってます。 かな?間違えていたらごめん。 wxPythonとかはあえてシカトしています。興味ないし。
ひょーんで脱力。でも笑った。
日本語オッケー?
34 :
デフォルトの名無しさん :03/05/15 10:46
メルマガ、早速配信延期かよ!
もうだめぽ
wxWindowsのカテゴリー別分類 ◯window管理 ウインドウマネージャー(MS Windows, Motif Window Managerみたいなの)に直接コントロールされる種類のウインドウデス。フレームはたいていウインドウを含み、ダイアログボックスはたいてい直下にコントロールを含む。 wxDialog ダイアログボックス wxFrame 一般的なフレーム wxMDIChildFrame MDIの子フレーム wxMDIParentFrame MDIの親フレーム wxMiniFrame 小さなタイトルバーを持つフレーム wxSplashScreen スプラッシュスクリーンクラス ※アプリ起動時などに表示されるアレ wxTipWindow 小さなウインドウに文章を表示するヤツ wxWizard ウィザードダイアログ ※アプリのインストールとかで出てくるアレ コモンダイアログの項目も見るように
◯色々なウインドウ 次のやつはwxWindowsがでっち上げた変種クラス wxPanel 現在のユーザーのセッティングによって色が変化するウインドウ wxScrolledWindow 自動的にスクロールバーを管理するウインドウ wxGrid グリッド(テーブル)ウインドウ wxSplitterWindow 水平方向や垂直方向にウインドウを分割するウインドウ ※2つの領域の間にあるバーで左右の領域の大きさの比率を変更できるやつ ※ペイン ウインドウで適当にGoogleてくれ wxStatusBar フレームのステイタスバーを実装するやつ wxToolBar ツールバークラス wxNotebook ノートブッククラス ※いわゆるタブですな。 wxPlotWindow データを表示するためのクラス ※心電図みたいなやつだって wxSashWindow ドラッグできる4辺の窓枠をもつウインドウ ※普通はウインドウに標準でついてますな wxSashLayoutWindow 統合開発環境みたいなレイアウト調整ができるウインドウ wxWizardPage ウィザードダイアログのページ部分のベースクラス wxWizardPageSimple ウィザードダイアログのページ部分
◯一般的なダイアログ 概要 コモンダイアログはアプリケーションで良く使われる既成のダイアログクラスである wxDialog コモンダイアログのベースクラス wxColourDialog 色選択のダイアログ wxDirDialog ディレクトリ選択ダイアログ wxFileDialog ファイル選択ダイアログ wxFindReplaceDialog テキスト検索/置換ダイアログ wxMultipleChoiceDialog リストから1つ、又は複数選択するダイアログ wxSingleChoiceDialog リストから1つだけ選択し、文字列を返すダイアログ wxTextEntryDialog ユーザーから1行の文字列を受け取るダイアログ wxFontDialog フォント選択ダイアログ wxPageSetupDialog 一般的なページ設定ダイアログ ※メモ帳の「ファイル->ページ設定」を見てくれ wxPrintDialog 一般的なプリンタ設定ダイアログ wxMessageDialog 簡単なメッセージボックスダイアログ wxWizard ウィザードダイアログ
◯コントロール 普通、こいつらはユーザー(とプログラム)の相互作用をもたらす小さなウインドウだったりする。staticでないコントロールは、それらに対応するvalidatorをもつことができる。 wxControl コントロールのベースクラス wxButton テキストが貼り付けられたボタンコントロール wxBitmapButton ビットマップが貼り付けられたボタンコントロール wxToggleButton ユーザーにクリックされると押されたままになるボタン wxCalendarCtrl Date picker control ※ユーザーから日付に関する入力を受ける時に使うコントロールですな wxCheckBox チェックボックスコントロール wxCheckListBox チェックボックスがそれぞれのアイテムの左側に対ているリストボックス wxChoice 選択コントロール(編集エリアの無いコンボボックス) wxComboBox 編集エリア付きのChoice ※edit controlとlistboxを組み合わせた様なやつだって wxGauge 変化する分量(例えば残り時間)を描写するコントロール。 wxGenericDirCtrl ディレクトリツリーを表示するコントロール wxStaticBox お互いに関係のあるコントロール同士を視覚的にまとめるための、静的なまたはグループ化するbox ※原文のstaticてどういう意味?
wxListBox 単体、又は複数の文字列を選択するための文字列リスト wxListCtrl 多層カラムのレポートビューの文字列および/またはアイコンのリストを表示するコントロール wxListView インターフェイスを簡単にするもの(wxListCtrlの報告モード用のファサード) ※ファサード(Facade)についてはGoFのデザインパターンを参照のこと wxTabCtrl いくつかのタブをコントロールするコントロール wxTextCtrl 1つの行、または複数の行のテキストを編集するコントロール wxTreeCtrl ツリー(階層)コントロール wxScrollBar スクロールバーコントロール wxSpinButton Spin、言い換えると『上下』コントロール wxSpinCtrl スピンコントロール。spin buttonとtext controlを合わせた様なやつ wxStaticText 編集のできない1つの行、または複数の行のテキスト wxStaticBitmap bitmapを表示するコントロール wxRadioBox ラジオボタンのグループ wxRadioButton お互いに排他的に選択される丸いボタン wxSlider ユーザーによってドラッグ可能なスライダー
◯メニュー wxMenu 選択されるメニューアイテムの一組を表示する wxMenuBar フレームによって使用されるメニューの一組を収納する wxMenuItem 1つのメニューアイテムを描画する
◯ウインドウレイアウト ウインドウ(とりわけダイアログ)のレイアウトを行う方法には2種類の 異なる方法が存在する。一つはsizerと呼ばれるものに基づいたもので、 タイピング量、思考、計算量の少ない、そしてたぶんほとんど全ての ケースで、全てのプラットフォームでほとんど同じ外観をダイアログに もたらす。 もうひとつがconstraintに基づくもので、よく非難されているけどまだ 利用可能だ。 Sizerの概要 これらはsizerに基づくレイアウトに関連するクラスだ wxSizer 抽象基底クラス wxGridSizer 全てが同じサイズのグリッドにウインドウをレイアウトするためのsizer wxFlexGridSizer 柔軟なグリッドにウインドウをレイアウトするためのsizer wxBoxSizer 行または列方向にウインドウをレイアウトするためのsizer wxStaticBoxSizer wxBoxSizerと同じだが、static boxに覆われた sizer wxNotebookSizer wxNotebook controlと一緒に使うsizer Constraintsの概要 これらはconstraintsrに基づくレイアウトに関連するクラスだ wxIndividualLayoutConstraint 1つの制約された次元を示す wxLayoutConstraints あるウインドウに対する制約を示す
…… これで1/4かな? 続きは気が向いたら。 #誰か続きしない?
45 :
デフォルトの名無しさん :03/05/18 04:29
>>40 wxStaticBoxのところは A static (box), or group box で
「static box、言い換えればgroup box」じゃないかと推測。
最初の部分は、wxValidatorの説明からいくと
「変数などとデータのやり取りが必要ない」という意味で「静的な」つーとこ?
「イベントによって動作を変える」という意味でも静的なのかもしれんが
wxCalendarCtrlとかあるからちょっと?ですな。
46 :
デフォルトの名無しさん :03/05/18 07:01
mxWindowsって ドラッグ&ドロップと日本語入出力をサポートしていますか?
>45 あ、日本語入出力はそれぞれのOSの日本語対応に依存しています。 IMの仕組みはなさそうです。 #意識しなくても普通に使えるから、それぞれのコントロールの裏で #処理されていると思うけど……
50 :
デフォルトの名無しさん :03/05/18 14:20
のって、偉いね。
51 :
デフォルトの名無しさん :03/05/18 14:28
wx.NETってどうよ
52 :
デフォルトの名無しさん :03/05/18 14:58
のって、ダサイね。
最近使い始めたよ。 ダサいけど実用的で良いね>wxWindows ScintillaとかOGLとか、使えそうな追加ライブラリがあるのもいい感じ。
○ Device contexts デバイス コンテキスト デバイスコンテキストは、あなたの図面描画コードをパラメター化できるような 抽象的概念を提供する、描画可能な表面です。 (Device context overviewより:wxDCはグラフィックとテキストを描く事が出来る デバイスコンテキストです。デバイスコンテキストは、様々な出力デバイスを 同様のAPIで包括的に利用できるようにします) wxClientDC OnPaintイベント外でクライアントエリアにアクセスするためのデバイスコンテキスト wxPaintDC OnPaintイベント内でクライアントエリアにアクセスするためのデバイスコンテキスト wxWindowDC 非クライアントエリアにアクセスするためのデバイスコンテキスト (クライアントエリアにもアクセス可能、ようするにウィンドウ全体にアクセスできる) wxScreenDC スクリーン全体にアクセスするためのデバイスコンテキスト wxDC デバイスコンテキストのベースクラス wxMemoryDC ビットマップに描画するためのデバイスコンテキスト wxMetafileDC メタファイルに描画するためのデバイスコンテキスト (Windows only、デバイスコンテキストとして扱えるメタファイルオブジェクトを生成する) wxPostScriptDC PostScriptファイルに描画するためのデバイスコンテキスト wxPrinterDC プリンタに描画するためのデバイスコンテキスト (Windows only、任意のプリンタとWindowsドライバへのアクセスを許可する) OnPaintイベント = 再描画イベントと判断して良いかな? 省略思いこみ訳ですが。 次、Networking classesとかかしら。
ライセンスの読み方がよくわからないんだが
ドキュメントに関するライセンス事項(
http://www.wxwindows.org/lic_doc.txt )
これって
4. Permission is granted to copy and distribute translations of this
manual or piece of documentation into another language, under the above
conditions for modified versions, except that sections related to
licensing, including this paragraph, may also be included in translations
approved by the copyright holders of the respective licence documents in
addition to the original English.
翻訳して公開する分には制約ないよってことだよね?
んで、このファイルの最初の所に書いてあることだけど
lic_doc.txt も一緒に配布してくれたらばっちりさ、ボブ!
ってことでいいのかしら?
『翻訳した文もこのライセンスに縛られるけど、自由に配付していいよ』 つうことを言っているのかと…… ※『このライセンス文を修正したものは除く(配付してはいけない)』 ※つう例外はあるけど。
58 :
デフォルトの名無しさん :03/05/20 02:26
59 :
デフォルトの名無しさん :03/05/20 08:14
>>57 神降臨
キタ━(゚∀゚)━( ゚∀)━( ゚)━( )━(゚ )━(∀゚ )━(゚∀゚)━!!!!
標準C++(STL)とwxWindowsとSDLを組み合わせればかなり応用範囲の広い マルチプラットフォームプログラミングが出来るような気がしてきた
>56 おつかれ。 やっぱり、こういう風にまとまっているといいよね。 あと、細かい所だけど、 > Line 5-7 : #pragma hbrstop #pragma hdrstop だと思う……プリコンパイルに関連するpragmaですな。
64 :
デフォルトの名無しさん :03/05/21 21:18
乙。 > Watcom C++ is automatic apart from the specification of the .pch file. Watcom C++ is strange in requiring the precompiled header to be used only for object files compiled in the same directory as that in which the precompiled header was created. Therefore, the wxWindows Watcom C++ makefiles go through hoops deleting and recreating a single precompiled header file for each module, thus preventing an accumulation of many multi-megabyte .pch files. Watcom C++では、.pchファイルの指定を除いては自動的である。Watcom C++は、 プリコンパイルヘッダは、それが作られたのと同じディレクトリでコンパイルさ れるオブジェクトファイルにのみ利用されるという点でヘンタイ的である。 であるから、wxWindowsのWatcom C++用makefileでは、それぞれのモジュールご とにプリコンパイルヘッダを削除して作成しなおすという面倒なことをして、 .pchファイルが積もり積もって全部で何メガバイトにもなる事態を回避している のである。 というところでどうでしょか。文体は丁度今見ているNHKの影響を受けている……。
> Note: include wx.rc after any ICON statements so programs that search your executable for icons (such as the Program Manager) find your application icon first. wx.rcのインクルードは、どのICONステートメントよりも*後に*行え。 それは実行ファイルを見てアイコンを探すプログラム(プログラム・マネージャ など)が、貴君のアイコンを最初に見つけるようにするためである。
67 :
デフォルトの名無しさん :03/05/21 22:04
>>65-66 乙です。
翻訳アリガトー。
私、知らない環境の話になると、
英語力が足りなすぎて
ニッチもサッチも行かなくてとてもお困りでしたの。
サソーク直してきま
ついでに。allocating and deleting wxWindows objects.(前半にょ) > In general, classes derived from wxWindow must dynamically allocated with new and deleted with delete. If you delete a window, all of its children and descendants will be automatically deleted, so you don't need to delete these descendants explicitly. ふつー、wxWindowから派生したクラスはnewで動的にアロケートしてdelete で逝ってしまわないといけないんだよもん。ウィンドウを削除したら、その 子も子孫も自動的に氏ぬから、こいつらを明示的に殺す必要はないもん。 # 難しい…… > When deleting a frame or dialog, use Destroy rather than delete so that the wxWindows delayed deletion can take effect. This waits until idle time (when all messages have been processed) to actually delete the window, to avoid problems associated with the GUI sending events to deleted windows. フレームやダイアログを頃すにはdeleteじゃなくてDestroyを使ってくださいお まいら。wxWindowsが、あぼーんの執行を送らせられるよーに。これは、ウィン ドウの削除をアイドルタイム(全てのメッセージが処理されたとき)まで遅らせて、 GUIがあぼんされたウィンドウにイベントを投げちまうことによる問題を避ける ためでつ。 > Don't create a window on the stack, because this will interfere with delayed deletion. ウィンドウをスタックに作るなゴルァ。削除の遅延が出来なくなるじゃねーか。
後半にょ。
> If you decide to allocate a C++ array of objects (such as wxBitmap)
that may be cleaned up by wxWindows, make sure you delete the array explicitly
before wxWindows has a chance to do so on exit, since calling delete on array
members will cause memory problems.
wxWindowsがあぼーんするかもしんないオブジェクト(wxBitmapとかな)のC++ の配列
(STLのarrayのことか?)をC++でアロケートするんなら、終了時にwxWindows がそうする
前に、絶対、その配列を明示的にあぼんすれ。配列のメンバについてdelete を呼ぶと
メモリの問題が発生するからな。
> wxColour can be created statically: it is not automatically cleaned up
and is unlikely to be shared between other objects; it is lightweight enough
for copies to be made.
wxColourは静的に作成できまつ。自動的に削除されず、オブジェクト間で共有されるこ
ともあんまないでつ。十分軽いのでコピー作ってもおkでつ。
> Beware of deleting objects such as a wxPen or wxBitmap if they are
still in use. Windows is particularly sensitive to this: so make sure you make
calls like wxDC::SetPen(wxNullPen) or wxDC::SelectObject(wxNullBitmap) before
deleting a drawing object that may be in use. Code that doesn't do this will
probably work fine on some platforms, and then fail under Windows.
wxPenやwxBitmapといったオブジェクトを削除する際は、それらがまだ使用中でないか
気を付けよ。Windowsはこの点にたいへんウルサイ。であるから、使用中かも知れない
オブジェクトを削除する前には、必ず、確実にwxDC::SetPen(wxNullPen) もしくは
wxDC::SelectObject(wxNullBitmap)を呼ぶようにせよ。これを怠ったコードはいくつか
のプラットフォームではちゃんと動くだろうが、Windowsではダメなんである。
文体バラバラや。推敲して下さい。
あと、見直して気付いたんですが
>>65 の「指定」は「仕様」かも知れませぬ。
長くてスマソ >皆様。
>>68-69 65 氏、マジでグジョブ!
要点きちっっと抑えててすげーよ!
でも、一点だけ。
>>68 > classes derived from wxWindow * must * dynamically allocated
with new and deleted with delete.
wxWindowから派生したクラスはnewで動的にアロケートし、delete
で逝かせる * 必要 * があるんだよもん。
ここの must ははしょっちゃいけない気がするんだけど、
いかがでしょ?
漏れも長文スマソ。
あ、はしょってはいないか。
失礼しました。
>>65 氏
おまいら神!漏れも勉強してみよっかなっと。
73 :
デフォルトの名無しさん :03/05/21 23:57
>>69 清書してて気付いたので突っ込み。
1つ目の奴。
> wxWindows オブジェクトのC++配列は自分で削除せーよ。
ではなく、
> 自分で削除すんなゴルァ。wxWindows が削除するからほっとけよ。
じゃないかな?
mey be 〜 by wxWindows は、If you 〜 にかかってて
since 〜 memory problems は make sure you delete 〜 にかかってる?気がする。
>>65 は指定でいい思いまつ。
仕様にするとそれはそれで変になると思う。
なんか、話がとっ散らかっててしてスマソ。
形になってきたら sourceforge.jp に翻訳プロジェクトとして申請してみれ。
おお、盛況ですな。 >75 案1)の方がC++としては自然ですな。 C++では、ポインタの指しているオブジェクトが配列かそうでないかを 識別することができないんだよね。 #詳しくはARMの5.3.4あたりを参照 オブジェクト配列を割り当てたのにdeleteを使用してしまった場合の挙動は 未定義(だいたいの場合はメモリリーク)になるから、『自分で始末しろ』て いってんじゃない? ……delete[]した後にdeleteするのもなんかマズい気もするけど…… ポインタを0クリアする必要ないのかなぁ?wxObjectのdelete演算子で 0クリアするように実装しているのかな?
78 :
54 = tofu ◆fS6u1o5e6Q :03/05/22 06:35
>>75 清書おつかれさまです。
>>65 の指定・仕様は、私もWatcom C++を知らんのでよくわからんのですが、
ヘンタイ的な仕様(とそれに伴う面倒)を指しているのかなと思ったのでした。
Watcom C++知ってる人のアドバイスきぼんぬ。
>>75 ,77
この文、やっぱり意味不明ですよねえ。
私のC++の知識はかなーり錆びててあやしいですが、もしかして、delete
explicitly は、まず手動で要素のデストラクタを呼んでdelete[]する、ことま
で言っていたりするんでしょうか。
あと、
>>69 の最後の訳文は、
Windowsはこの点にたいへんウルサイ。
→とりわけWindowsはこの点にウルサイ。
に訂正です。
80 :
デフォルトの名無しさん :03/05/22 07:15
女子高校生監禁コンクリート詰め事件!!!!
共産党幹部宅で行われた鬼畜行為(裁判で明らかになってます)(監禁41日間の内容)
・オイルを両大腿、膝、すねにたらして着火する
・熱がって火を消そうとすると手にもオイルをかけて着火、火が消えるとまた点火する
・性器に異物を入れて弄ぶ
・自分の尿を飲ます
・性器にライターを入れて着火する(この行為によって何度も気絶し、髪の毛が抜けていったという)
・性器を灰皿代わりにする
・性器にオロナミンCの瓶を入れる
・お尻の穴に花火を突っ込む
・性器に強引に直径3Cmの鉄の棒を突っ込んだり抜いたりして性器を破壊する
・頬が鼻の高さを超えるまで腫れ上がり、目の位置が陥没して分からないほどになるまで暴行
・歌謡曲を流して、歌詞にあわせて脇腹に思いっきりパンチをいれる
・痛さをこらえるので口が変なふうに歪むのを見て面白がる
・犯人2人の真ん中に立たせ、左右から肩や顔に回し蹴りを数発入れる
・顔にろうそくをたらす
・眉間に短くなった火のついたろうそくを立てる
・6kgの鉄アレイを腹に落とす
・鉄アレイで大腿や顔面を殴る
・逃げないようにガムテープで全身をぐるぐるまきにする
コンクリート詰め事件で検索すればわかります。
アンチが騒いでます(w
http://qb.2ch.net/test/read.cgi/accuse/1052793624/l50
>>78 乙です。んじゃ strategies for reducing programming errors と
strategies for portability を貼ります。それぞれ短いのでご容赦下さい。
プログラミングエラー低減の戦略
ASSERTを使え
私自身はwxWindowsで実行できていないのだが、ASSERTステートメントを
さくさく使うのは良い習慣だ。ASSERTは、成立すべき、ないしせざるべき
条件をチェックし、適切なエラーメッセージを出力する。これらは、
ノンデバッグ版のwxWindowsやあなたのアプリケーションからコンパイル時に
外すことも出来る。ASSERTの使用は、「防禦的プログラミング」の一例であり、
そのうちあなたに問題を警告してくれる。
文字配列よりもwxStringを使え
wxStringの使用は、char*の使用よりもはるかに安全でより有用である。
今度もまた、私自身は自分の説く道を実践できていないのだが、私も
今、可能な限りwxStringを使おうと努めているところである。あなたは
メモリリークの可能性を著しく低減でき、オーバーロードされた演算子
の使用は、strcmpなどの関数よりはるかに便利である。wxStringは、
プログラムにさほどのオーバーヘッドを与えない。オーバーヘッドも、
文字列操作がより簡便となったこと(つまりより少ないコードで済む
ということだ)によってチャラになる。
他のデータ型についても同様である。可能な限りクラスを使え。
移植性の戦略 相対位置指定やSizerを使え [訳注: Constraints positioningは既にobsoleteである。そのため、sizer に置き換えて文章を構成した。容赦願いたい。] 出来うれば、パネルの要素の絶対位置指定はやめよ。GUIが異なればパネルの 要素の大きさも随分と違うのである。多少はプログラムの手間が増えるかも知れ ないが、Sizerの使用を検討せよ。 別解として、プラットフォーム毎に、それぞれ少しずつ数値の違う別々の. wrc(wxWindowsリソースファイル)を用意する方法もある。もしくは、問題を避け るためにパネル要素の間を十分に空けよ。 wxWindowsリソースファイルを使え 可能な限り .wrc (wxWindowsリソースファイル)を使え。これは、ソースコー ドとは独立に簡単に編集できる。ビットマップリソースはプラットフォームに よって異なるビットマップをロードするようにも設定できる(リソースファイ ルの項を見よ)。 ~ ~ ~ たぶん、Windowsでもパネル要素の大きさは大きいフォントと小さいフォントで 違うのではないかと思います。
>>69 関係について、新参ですが、こーゆー事を言ってるんじゃないでしょうかねぇ。
何かのクラスのメンバーに例えば wxBitmap *pBitmap = new wxBitmap[N];
とかってやった場合はキチンと自前で delete [] pBitmap; ってやれ、って
事じゃぁないでしょうか。
wxWindows勉強まだ始めてないんで、かなり推測なんですが、wxWindows では
動的にアロケートされたwxWindows用のオブジェクトを終了時に勝手に delete
してくれるようになってるんじゃないですかね。で、その自動化機構によって
配列に delete かけるとマズいから、配列を動的に確保した場合はキチンと
delete [] を明示的にユーザー側でやってちょ。と。
全然違ったらスマソ
Mingw(+MSYS)でコンパイルしたいのですが。 MingwのインクルードファイルとwxWindowsのインクルードファイル間で 構造体の宣言が衝突してエラーになります。 どなたか回避方法とかわかる方いらっしゃいますか?
おー、なんかすげー勢いになってる。
取り急ぎいろいろと。長文、乱文、アンカーミスあったらスマソ。
>>78 早起き過ぎ。
文責関係は私も気にしなきゃいけない気がしてたので
文書として明文化しておきました。
http://dot-gray.s33.xrea.com/translation.html あー、なんか俺必死っぽい(藁
>>78 ,81-82
ローカルに保存しますた。あとでマージしときます。サンクスコ!
>>79 >>65 は原文併記に切り替えときます。あと、修正もやっときまふ。
>>75 ,77 は
>>77 ,83 氏の案でビンゴかと。
wxWindows のオブジェクトはガベコレで管理してるけど、
new されたC++配列(wxHoge* p = new wxHoge[N])までは
管理しない(出来ない)から wx cleaned up までには、自分で責任もって削除しろYO!
でないと、問題ですよ!ってことで理解しかけますた。
new wxHoge != new wxHoge[N]
>> 84,85
うちも cygwin あるんでうp期待してまつ。
わかりました。たぶん。
>>69 の "a C++ array of objects" は配列じゃないんですな。
STLの……は惜しいけど違って、wxObjArrayだと思われ。こいつは要素を所有し
ますので死ぬときにdeleteします。それがclean upまで持ち越されると、
arrayのdeleteとwxWindowsが要素を直接deleteするのとの前後が不定なため
二重deleteが発生しうるということではないかと。
include/wx/dynarray.h (_WX_DECLARE_OBJARRAYの中のEmpty())
include/wx/arrimpl.cpp (~name()、DoEmpty())
wx31.htm (wxArrayの説明)
を読んでみて下さい。
訳文は夜にでも修正します。
>>84 いかがでしたか? うちではMinGWでもcygwinの-mno-cygwinでも作れていますけど、
ソースを修正したかどうかは忘れてしまいました。
あんまり困らなかったとは思うんですけど。
あと喉にひっかかってるトゲ(
>>65 )をとってくれる勇者ぼしうです。だれか
Watcom C++試して。
出来たので報告。
環境はMingw2.0.0+MSYS1.0.8。
install-msw-2.4.0.txtに書いてある手順だけではうまくいかなかったので、
追加で必要だった作業を書いておきます。
★MingwのWindows APIパッケージは最新の2.3にしておく
★
http://lists.wxwindows.org/cgi-bin/ezmlm-cgi?5:mss:33083:200305:jimgjppnkkijcogmmhle 上のURLを参考に、wxWindows-2.4.0/include/wx/msw/missing.hの
162行目以降で
#if defined(__GNUWIN32__) && !defined(HDN_GETDISPINFOW)
#define HDN_GETDISPINFOW (HDN_FIRST-29)
typedef struct {
NMHDR hdr;
となっている所を
#if defined(__GNUWIN32__) && !defined(HDN_GETDISPINFOW)
#define HDN_GETDISPINFOW (HDN_FIRST-29)
#endif
#if defined(__GNUWIN32__) && !wxCHECK_W32API_VERSION( 2, 3 )
typedef struct {
NMHDR hdr;
の様に修正する
以上です。
これで、minimalサンプルをコンパイルできる所まで確認しました。
ところで、wxWindowsのドキュメントの翻訳、乙です。
日本語のドキュメントなどが揃えば、新たな利用者も増えて、
スレ活性化で、情報増えて(゚Д゚)ウマー
漏れは英語苦手なんでアレですが、がんがってください!
>>88 キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
> 漏れは英語苦手なんでアレですが、がんがってください!
ぶちゃけ、みんな苦手だと思うYO!
漏れ工房んとき、馬鹿すぎて英語教師に黒板けし投げつけられたことあるYO!
しかも当たったョ・・・、黒板けし。・・・糞、・・・氏ね、英語教師。
>>76 遅レスだがソースフォージか・・・、cvs 使えるのがえらい魅力的っぽいんだけど
そこまですんのも・・・。
週末に擬似 cvs ちっくな cgi いれよかな。
メールでパス発行して、期間限定(一週間ぐらい?)のチェックアウト。
コミットした文書はいったんトランク(?)に突っ込んで、
コミッター3人以上の認証が得られれば本コミットみたいな・・・。
面倒くさいか。
あと、皆様。
文責・著作権関係を以下に纏めてみたんだけど、
これでいいのかな?
こういうの書くのって初めてなのでよくわからないです。つっこみキボン。
http://dot-gray.s33.xrea.com/translation.html#res んじゃ、ちょっくらマージしてきまふ。
>>87 > 訳文は夜にでも修正します。
いまいち反応がないのが不安ですがこの立場で大幅に言葉を足してみました。
> If you decide to allocate a C++ array of objects (such as wxBitmap)
that may be cleaned up by wxWindows, make sure you delete the array explicitly
before wxWindows has a chance to do so on exit, since calling delete on array
members will cause memory problems.
wxWindowsが終了時に個別に始末するオブジェクト(wxBitmapなど)のC++ array
(具体的には、WX_DECLARE_OBJARRAYで定義されるもの)をアロケートするのなら、
wxWindowsが終了時にそれを削除するより先に、確実に、明示的に削除せよ。
それはデストラクタで要素をdeleteするため、終了時の処理の順序によっては、
wxWindowsがarrayの要素についてdeleteを呼ぶときに、メモリを二重に解放して
しまうからである。
違うなら違うといってくれー。
>>91 違うと否定するにはまず wx31.htm (wxArrayの説明) を読まなきゃいけない。
漏れはそこ読みたいけどその前に訳をまとめときたいのでいまはむりぽー。
>>灰氏へ
普及促進サイトの
http://dot-gray.s33.xrea.com/docs.org/wx14.htm#topic10 のページ中で(以下翻訳不能って所を訳してみました。
一部推測と意訳混じってますが、もし良かったら使ってください。
以下訳。
wxWindowsを制御するメイクファイルは、各Windowsコンパイラー用の物がMS-Windowsディレクトリ(src/msw)に入っているし、
Unix版を使っているならビルドディレクトリの中に入っている。このビルドディレクトリはユーザーが選ぶことが出来ます。
configureスクリプトを実行する時のカレントディレクトリがビルドディレクトリとなります。
このディレクトリは、標準的な基本ディレクトリ(そうするには./configureコマンドを実行すればよい)でも良いし、
他のどんなディレクトリ(例えば、先に基本ディレクトリの上階層にビルドディレクトリを作っておいて
そこで../configureコマンド実行するとか)でも良いです。
調子に乗って第二弾♪(w
以下のページを訳しました。
http://dot-gray.s33.xrea.com/docs.org/wx17.htm#topic14 おかしかったら、指摘してください。
以下訳。
アーキテクチャ依存
マルチプラットフォーム対応なプログラムを書いていると時々、
C言語の基本型(the basic C types)がすべてのプラットフォームで同じように定義されていない
という問題に遭遇することがある。この問題は基本型(intやlongなど)をビットで表したときの長さにも当てはまり、
また、それらのバイトオーダーにも当てはまる。バイトオーダーは、標準的なIntel系のコンピュータではリトルエンディアンになったり、
標準的な幾つかのUnixワークステーションではビッグエンディアンになる。
wxWindowsはアーキテクチャに依存しないコードを簡単に書けるように型とマクロを定義している。
それらの型には以下の物がある:
wxInt32, wxInt16, wxInt8, wxUint32, wxUint16 = wxWord, wxUint8 = wxByte
このwxInt32は32ビット符号付き整数型を表す、などなど。
またあなたは、wxBIG_ENDIANかwxLITTLE_ENDIANのどちらか一方を定義する(将来wxPDP_ENDIANも定義できる様になるかも)wxBYTE_ORDERを使って、
プログラムがどのアーキテクチャ上でコンパイルされるかチェックすることが出来ます。
その、アプリケーションのエンディアンについてビットスワッピングを処理するマクロは、Byte order macrosの章で説明されています。
>>95 自分で書いておいてあれですが、漏れもスクリプトだと思います。(w
シェルスクリプトのひとつですよね?なんでコマンドって書いたんだろ?
漏れ的にはスクリプトはテキスト、コマンドはバイナリってイメージです。
ところで、もういっちょ訳しました。URLは↓です。よろしくお願いします。長文スマソ。
http://dot-gray.s33.xrea.com/docs.org/wx18.htm#topic15 以下訳。
条件コンパイル
wxWindowsの目的の一つは、乱雑で理解するのを混乱させ得るソースコード中の条件コンパイルの必要性を減らすことにある。
しかし時々、プラットフォーム固有の機能(MS-Windowsにおけるメタファイルの使用など)を組み込む必要が出てくることがある。
もしかするとsymbols.txtに載っているシンボルは、ユーザーが用意(定義)したシンボルと一緒に、この目的のために使用されるかもしれない。
長文スマソ。
>>97 禿同。
テキストベースはスクリプト、
バイナリベース単機能型はコマンド、
同多機能型はアプリケーション、
って思ってたけどどうやら違うらっすいね。
んで、翻訳乙です!
明日(っつかもう今日か)
>>97 はマージします。
>>94 はマージしました。
また、両文併記だけど、もう今日は限界。
ねむりまふ。
もう、ほんとヘナチョコですまん。
あー、最後に
翻訳者の方々へ。
http://dot-gray.s33.xrea.com/translation.html#doc_info 上にあるとおり翻訳者名をすでうめこんでまふ。
今のところ”数字”で名乗ってる方々は数字のまんまつっこんでるんですが
ちゃんとしたハンドルで埋め込まれてー方はご一報くだされ。
>91 wxBitmap::~wxBitmap()の説明なんかを勘案して、こんな感じかと…… 「もしもあンたがwxWindowsがクリンナップ(処理)を行うオブジェクトの C++配列を割り当てることにしたンなら、(プログラム?関数?)終了(処理)時 みたいにwxWindowsが配列を削除する機会を得る前にてめぇできっちり やっときなよ。配列メンバのdelete呼び出しはメモリ問題を招きやがるからな」 やっぱり(C++)配列だと思う。 でも、なんでメモリ問題をおこすのかな?オブジェクト配列の各要素が デフォルトコンストラクタで作成されるから、それによって扱いが特殊になる、 つうこと? 教えて!!詳しいひと! >96 いいですな。 ただ、確かEUC-JP/SJISはサポートしていない罠。 週末チャレンジしてみますか。
>>99 詳しくはないけど"C++ Array"が通常のC++配列(new wxBitmap[N];で確保した配列)
のことだとした場合に考えられる問題は
>>83 にも書いてある通り
delete[]で削除すべきオブジェクトをdeleteで削除してしまう問題が発生するのでは
wxBitmapから辿ってソースを眺めてみたところ
wxObjectRefDataクラスが参照カウンタをもっていて
wxObjectのm_refDataメンバにwxObjectRefDataの派生クラスのオブジェクトを指すことで
wxObjectのRef(),UnRef()メンバを使ってwxObjectRefDataの派生クラスのオブジェクトを
管理することができるようになっているみたいです
これがwxWindowsが自動的に削除するオブジェクトの仕組みだとすると、
参照カウンタが0になって削除されるのはwxObjectRefDataの派生クラスのオブジェクトのほうで
>>83 も
>>87 も問題なさそうな気がするのでもしかしたら的外れかもしれない・・・
>>99 ごめんなさい、私がC++のdelete[]の仕様を誤解しておりました。
delete[]は要素についてデストラクタを呼ばないと思っていましたが、そうでは
ないのですね。wxObjArray(でないといけない)説は撤回します。
普通の配列でも同じ話が出来るということで。
memory problemsが何を指すかですが、wxObjectは基本的にハンドラで、データ
の実体であるRefDataへのポインタを持ちます。RefDataはリファレンスカウント
で管理されます。wxObjectがデストラクタでUnRef()するとカウントが減り、0
になれば破壊されます。
main loopを抜けたあとでリソースのclean upが行われるとすると、この時点で
RefDataは破壊されます。万一、この時点でまだ配列が生き残っていて、それが
これより後にdelete[]され、そしてそれぞれの要素のデストラクタが呼ばれると、
破壊されたRefDataを触ることになるので問題が発生します。
……ということを言っているように思います。
もっとも、少なくともwxMSWのwxBitmapではcleanupはやってなさそうに見えます。
>>96 現状でもEUC-JP/SJIS変換できますよ。iconv使えますから。
>>102 wxObjectはすべてのクラスの基本クラスで参照カウントオブジェクトがいらないクラスもあるので
UnRefはm_refDataがNULLかそうでないかを見てm_refDataを触るかどうか判断しているみたい
で、UnRefするとm_refDataをNULLにしてRefや代入で新しくm_refDataに参照カウントオブジェクトを指すまで
UnRefはm_refDataには触らないようになっているので、メモリ問題と参照カウントオブジェクトは関係ないかもしれない
話をややこしくしたみたいでスマソ
>>104 102は101を見てから書いたわけではないので。単にだぶっただけです。
RefDataが破壊されても他に残ったwxObject(あれば)のm_refDataはNULLになった
りはしないので、cleanupで強引に破壊されるとしたら(これが怪しいんですが:<)
可能性はあるんじゃないかと思いますが。
CleanUp()からも辿ってみたけどwxBitmapを片してるところが見つからず。
あー、やっとメルマガのサンプルをコンパイルできたー
俺もやってみるかな。
wxStringの冒頭部分を機械+手で訳してみました。 wxString wxStringは文字列を表すクラスです。 これに関する詳しい情報に関してwxString概観を見てください。 そこで説明されるように、wxStringはstd::stringのメソッドの約90%を実行します。 (iteratorはサポートしていないので、それを使用するすべてのメソッドも未サポート)。 これらの標準関数がこのマニュアルに記述されないので、STLドキュメンテーションを見てください。 これらのすべての機能のふるまいはそこで説明されたふるまいと同じです。 引き出します。 親クラス なし インクルードファイル <wx/string.h> 事前に定義されたオブジェクト オブジェクト: wxEmptyString 参照 概観 ファンクショングループ
あ、「引き出します。」はなしで。
>>108 いえ、こっちがちゃんとドキュメントを読んでないから、いろいろ躓きました(w
>>109 またキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
これまた、地味かつディープなところで、・・・凄くナイスです。
早速取り込みますです。
>>110 やっちまったんですな。
何はともあれ乙でした。
あ、あの。 クラス、関数のどきめんとは某翻訳プロジェクトを真似て、 (tp://www.shibu.jp/wiki/translation%20standard) 見出しは訳さない方向でいこかとおもーてまふ。 見出しの訳語を統一する手間も省けるし そのままの方が馴れでわかりやすいと私もおもーてますので。 なので、以後それ系ドキ、見出し徹底放置で。
113 :
デフォルトの名無しさん :03/05/24 01:59
マルチな質問 widestudioとwxwindowsってどこが違うの?
>113 マルチ氏ね で、質問の回答だけど、一番違うのがプログラムスタイル。 widestudioは、RAD&ウィザードスタイルのガチガチに硬いフレームワーク。 #window毎にソースファイルを作らなきゃいけないところとかの制限もあるみたいだし。 wxWindowsはクラスとマクロを組み合わせたライブラリライクなフレームワーク スタイル的な柔軟性はこちらの方が高い……と思う。使い方覚えるの大変だけど。 例えば、wxWindowsはウインドウの無いアプリケーションも簡単に作れる。 #wxApp::OnInit()の中でwindowを作らずにreturn false;するようにするだけで #(ウインドウを表示することなく)実行後にすぐ終了するプログラムを作れる #……つうてもわかんないか…… あとは、ライブラリの規模でしょうな。 #widestudioは軽く触っただけなので、間違えていたら指摘ヨロ
wxWindowはフリーでマルチプラットフォームなMFC widestudioはフリーでマルチプラットフォームなBCBのサブセット
>>112 個人的には見出しは訳した方がいいと思うけどね。
どういう情報がどこにあるか探すのにわかりやすい方が楽でしょ。
あるときに読む必要のある文章というのは全然多くないのだから、
なまじ本文をだらだら訳すよりもそういう箇所をすぐに見つけられるように
する方が同じ時間をかけるなら役に立つんじゃないかと思ったりしてるぐらい。
あ、
>>116 の後半は一般論です。翻訳プロジェクトとか日本ユーザ会とかには
木を見て森を見ずというが多いように思うので。水をかけるようでスマソ。
wide studioちょっとだけ使ってみた感想。 統合環境があって日本語ドキュメントも整っていて、非常に使いやすい。 初心者の俺でもすんなり使えた。 ただ、GUIが独自で作成物がちょっと操作しにくい。 慣れの問題だろうけど、この点がマイナスかな。
>>116-117 >木を見て森を見ずというが多いように思うので。水をかけるようでスマソ。
確かにそうかも。
了解しました、翻訳する方向で行きます。
ただし、見出しは完全な定型文なので個々に翻訳はせず
後日スクリプトで一括置換することにします。
対応訳語はdoxygenの出力あたりを参考してみまーふ。
(でいいかな?もっちょい考えるべきかな?)
一応、見出しの定義:
クラス、関数仕様トキメント及び、そのフォーマットに順ずる文書
における下記の2パターン
<h2>[^<]*</h2>
<b><font COLOR="#FF0000">[^<]*</font></b>
これを見出しとします。(この2種類だけのはず・・・)
現時点ではとりあえず放置。
調査後にチカンの方向で。
オミトロン・翻訳ドキュメント用フィルタ(ちょっと楽しく便利になるかも・・・) ## 原文へのリンクを表示(もじら以外のユーザ用 Name = "wxW Show Original Document" Active = TRUE URL = "dot-gray.s33.xrea.com/docs.org/" Bounds = "<(link rel="alternate" title="Original \(English ver.\)" href=)\1"([^"]*)\2"*>" Limit = 128 Match = "*" Replace = "<\1"\2">" "<p><a href="\2">原文</a></p>" ## 翻訳者名を表示 Name = "wxW Show trans-auther" Active = TRUE URL = "dot-gray.s33.xrea.com/docs.org/" Bounds = "<(meta name="translation-author" content=)\1"([^"]*)\2">" Limit = 128 Match = "*" Replace = "<\1"\2">" "<p>翻訳者: \2</p>" IE opera moz で動作確認しますた。
>>120 s/ yano/\~yano/g
スマソ。
124 :
灰 ◆v/.u/aNe9w :03/05/24 14:43
>>119 あの・・・、やっぱり自由でいいです。
訳したい方は訳して、
ほっときたい人はほっときで。
私の方でうまいことやりますです。
でも、見出しは一斉チカンなので
訳をうpった人は見出し訳したのに反映されねーぞゴルァ!
って言わねーでくださぃ。
(・∀・)オナガイシマース。
>>123 おおお。
凄いのキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
凄いのキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
凄いのキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
あげるぞ、このやろー!
藻前様は神か?そうなのか!?
そういや、前にもあったけど、 sourceforge.jp に登録してみる? みんながCVS使えるようだとsourceforgeも便利なんだけどね。
最初は併記にして、安定してきたら 和訳に対応する原文のページへのリンクに切り換えるというのはどうです? 併記でも原文ページへのリンクが欲しいです。 原文が更新された場合などは便利かと。
>102 まだしつこく続きを。 void wxApp::CleanUp() で wxBitmap::CleanUpHandlers();というwxBitmapの 何か得体の知れないhandlerをdeleteするメンバ関数が呼び出されますね。 #wxBitmap::CleanUpHandlers()はwxGDIImageから継承。 void wxApp::CleanUp() 自体は void wxExit()で呼びだされるので、 "wxWindows has a chance to do so on exit"とはこのことを指している のかな? #それ以上はトレース出来無かったけど。
>>128 CleanUpHandlers()で削除されるのはbitmapの各種フォーマットに対応する
ためのhandlerで、個別のwxBitmapとは無関係かなと思いました。
void wxGDIImage::CleanUpHandlers() の直ぐ下に
void wxGDIImage::InitStandardHandlers() というのが定義されていますが、
これを見るに、そんな感じです。
>129 確かにそんな感じですな。new [] しても問題になるとも思えない…… そもそも、"that may be cleaned up by wxWindows"つうのはどういうこっちゃ? よりによってwxBitmapを代表例に選んでいたりするからよく解らん…… #wxButtonとかだったら、まだわかりやすいんだけど…… 取りあえずは、『オブジェクト配列は使うな』つうことですかねぇ
>>125 確かにそうですね。
でも、両文併記はちょっと読みにくいかなぁと思ってたんですが
見た目をちょいちょい弄れば、自然に読めそうなことを発見します田。
んで、そうなると訳のチェックはみんなで出来るようになるから
今まで漏れが勝手にしていた作業を放棄できる。
んであれば、訳文マージ作業も自動化出来る。
簡単な構造指定文法(wikiちっくな感じかな)+スクリプトをつくーれば
make all
make upload
で、作業完了ですお。父さん!って夢も見てみますた。
うほーい、楽ちんかもー!やふーぃ!
>>132 訂正
> んで、そうなると訳のチェックはみんなで出来るようになるから
↓
> んで、そうなると訳のチェックは読者に任せられるから
あ、朝日が・・・。
>>133 ハマってますなー。
> ここ何日かの作業の感想からいうと、
> 文書の品質チェック(偉そうでスマソ)は脱糞するほどきついことがわかりますた。
> 一人でやるのはむりぽ。
>
> やるのであればコミッター制度(
>>90 )の導入が必要不可欠だと感じておりまふ。
> それか別案があれば提出プリーズ!
とりあえずここに貼るのはどうでしょう。
> あと、原文リンクが必要なのは同意なので、
>
>>125 案+
>>127 案のサンプルこさえてみますた。
>
http://dot-gray.s33.xrea.com/test/wx17.htm // サンプル
>
> デザインはアレとして、結構いける気がしまつ。
> いかがでしょ?
おお、いいじゃないですか。見出しの原題はちょっと工夫欲しいかも。
h1,h2,h3,h4,h5,h6 span.j + span.o {
size: smaller;
}
h1,h2,h3,h4,h5,h6 span.j + span.o:before {
content: "<br> (";
}
h1,h2,h3,h4,h5,h6 span.j + span.o:after {
content: ")";
}
とか?
ついでに
>>133 の訳の改良案。
> (the basic C types)
はなくても大丈夫じゃないでしょうか。
typicallyはmight beにかかりますので、
> which might be little endian (typically on Intel computers) or big endian (typically on some Unix workstations).
例えばIntel系のコンピュータではリトルエンディアンだったり、
Unixワークステーションによってはビッグエンディアンだったりする。
定義する→〜として定義される、の方が良いかと思います。
> where wxInt32 stands for a 32-bit signed integer type etc. You can also
> check which architecture the program is compiled on using the
> wxBYTE_ORDER define which is either wxBIG_ENDIAN or wxLITTLE_ENDIAN (in
> the future maybe wxPDP_ENDIAN as well).
例えばwxInt32は32ビット符号付き整数型を表す。また、プログラムをコンパイ
ルしているアーキテクチャも、wxBYTE_ORDERマクロを使って調べられる。
wxBYTE_ORDERはwxBIG_ENDIANとwxLITTLE_ENDIANのいずれかとして定義される
(将来はwxPDP_ENDIANも扱えるようになるだろう)。
語尾統一。
> 説明されています。
説明されている。
訳のチェックは好みもあるし盛り下げたくないしで難しいですね。
これまでは誤訳かと思ってもwxWindowsと直接関わらないものはスルーしてました。
灰さん、マージやらUpやらお疲れ様です。
wx448.htm の Networking classes と
wxFTPクラスの説明 wx165.htm を訳しました。
----------------------------------
ネットワーキング クラス
wxWindowsはソケットに基づいたネットワーキングのためのクラスを提供する。
wxDialUpManager ネットワーク接続のステータスチェックと接続確立機能を提供
wxIPV4address インターネット・アドレスを表現
wxSocketBase ソケット基礎オブジェクトを表現
wxSocketClient ソケット・クライアントを表現
wxSocketServer ソケット・サーバーを表現
wxSocketEvent ソケットイベント
wxFTP FTPプロトコル クラス
wxHTTP HTTPプロトコル クラス
wxURL ユニバーサル・リソース・ロケーターを表現
----------------------------------
wx165.htm は長いのでアプロダに。
http://dot-gray.s33.xrea.com/cgi/source/0003.html 原文併記にしてありますが、どういう状態がマージする時に楽なんですかね。
ところで、訳しながら、各メソッドの動きをチェックするために CUIでチマチマやってたんですよ。.NET 2003で。 で、CUIでやるには $(WXWIN)\lib\wxbase.lib が必要なんですが 追加してなくても comctl32.lib と rpcrt4.lib が追加されていれば、ビルドできちゃう。 追加していても $(WXWIN)\lib\wxmsw.lib より前にしないと駄目。 (というより、CUIではwxmsw.libは要らないっぽい) これにはまっちゃうと、ビルドできるし、他の機能は動くのに、接続だけできない。 wxbase.lib が必要なのは samples\console をみてすぐ分かったんだけど 追加する位置で思いっきりはまりました… こんなところにはまるのは僕ぐらいかもしれませんが、自分用メモを兼ねて書き。
>136 65さんのサンプルを参考に、変換用のrubyスクリプトを作ってみました ……ソースに情報が無さすぎて、あんまり大したことはできていませんが…… 解る範囲でいらない段落は削除しています。 使い方は ruby <強制変換したいファイルの集まったディレクトリ> です。 強制的に書き換えを行いますので注意。
#!/usr/bin/ruby -Ks
rootdir = ARGV[0].gsub(/\\/, "/")
Dir[rootdir+"**/*.htm"].each do |source|
p source
#source = ARGV[0]
s = ""
ref = source.gsub(/\\/, "/")
ref.gsub!(/^.*html\/wx(.*)$/, '
http://www.wxwindows.org/manuals/2.4.0\1 ')
File.open(source, "r") do |aFile|
s = aFile.read.gsub(/\<[Pp]\>/, "</p>\n<p>")
s.sub!(/\<\/p\>/, '')
s.sub!(/\<head\>/, "<head>\n\
<meta http-equiv=\"content-type\" content=\"text/html; charset=Shift_Jis\">\n\
<meta name=\"translation-author\" content=\"\">\n\
<link rel=\"alternate\" title=\"Original (English ver.)\" href=\"" + ref+ "\">\n\
<style type=\"text/css\">\n\
p,div {\n\
margin-left:1.5em;\n\
}\n\
.o {\n\
color:#363;\n\
background-color:#f3f3f3;\n\
}\n\
div.o {\n\ border:solid #aaa;\n\ border-width:0px 0px 0px 0.2em;\n\ padding-left:0.5em;\n\ }\n\ span.o {\n\ margin-left:0.5em;\n\ }\n\ div pre\n\ {\n\ margin-top: .6em;\n\ margin-bottom: .6em;\n\ margin-left: 2em;\n\ margin-right: 2em;\n\ font-family: Andale Mono, Courier New, Courier, mono, monospace;\n\ color: #550000;\n\ background: #eeeeee;\n\ }\n\ </style>\n" ) s.sub!(/ALT\=\"Next\"\>\<\/A\>/, "ALT=\"Next\"></A> <a href=\"" +ref+ "\">原文</a>") end
t = false s.gsub!(/\<p\>([\S\s]+?)\<\/p\>/) {|m| paraj = m.gsub(/\<\/?p\>/, "") parao = paraj.gsub(/\<HR\>/, "") if (parao.include?("<FONT COLOR=\"#FF0000\">Derived from</FONT>")) t = true end if (paraj.include?("<HR>")) t = false end if (parao.include?("<H3>") or t) then "<p>\n<div class=\"j\">" + paraj + "</div>" else "<p>\n<div class=\"j\">" + paraj + "</div>\n<div class=\"o\">" + parao + "</div>\n</p>" end } s.gsub!(/\<pre\>([\S\s]+?)\<\/pre\>/, "</p><pre>\1</pre><p>") end File.open(source+"l", "w") do |aFile| aFile.write(s) end
あ、最後間違えている…… File.open(source+"l", "w") do |aFile| aFile.write(s) end は File.open(source, "w") do |aFile| aFile.write(s) end ですね。 ……しかし、HTML文中に情報なさすぎ……<p>も閉じていないし……
サンプル見ていて…… 変なことしないで、 訳したあと、原文を<div style="background: #999999"></div>で囲む ぐらいのシンプルなものの方がいいような気がしてきた…… こだわるのも大変だしね。
長文スマソ。
>>137 > C type〜
らじゃー。
> which might 〜
らじゃー。
> where wxInt32 stands 〜
びみょー。
定義される には激しく同意。でも、文全体としては
>>84 氏の方が良いかと。
折半案として以下の奴でいかがでしょう?(変更点 = *〜*)
*例えばwxInt32は32ビット符号付き整数型を表す。*
またあなたは、wxBIG_ENDIANかwxLITTLE_ENDIANの *いずれかとして定義される*
(将来wxPDP_ENDIANも定義 *される* 様になるかも)wxBYTE_ORDERを使って、
プログラムがどのアーキテクチャ上でコンパイルされるかチェックすることが出来ます。
つづく。
>>147 続き
> 語尾統一。
りじぇくとー。えへ。
語尾(文体かな?)の統一は、今はやらない方向で考えています。
(ですにゃ。とか、ですにょ。はさすがにアレだけど・・・。いや、取り込むべきか・・・?)
1.手軽さがなくなる。
2.
>>36 等の大きな文書になると複数人翻訳は必然。
各訳者から、うpされるたびにチェック&修正は大変。
3.下手をすると揚足取りになってしまう。それは(・∀・)ダメー!
語尾統一するなら何かのタイミングで文書をフリーズしたとき、
パソコン君にやろそうかと考えてます。
> 訳のチェックは好みもあるし盛り下げたくないしで難しいですね。
> これまでは誤訳かと思ってもwxWindowsと直接関わらないものはスルーしてました。
出来るだけ自由にやれる様にしたいですな。
>>138 新規翻訳 キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
乙です。
早速取り込みますでふ。
> 原文併記にしてありますが、どういう状態がマージする時に楽なんですかね。
>>132 でみた夢を追いかけて旅立ってみようかとおもってみたり。
>>147 ,148
まあ、お好きにどうぞ。
私は日本語として通したときに自然な方が好きなのでああしてみました。
最後の語尾統一はまあついでですね。さすがに同一ファイル内でばらばらなのは
見苦しいかと。
>>145 おお、具体例だ!
やほー!
>>140-144 この解析ロジック頂きます。
> ……しかし、HTML文中に情報なさすぎ……<p>も閉じていないし……
・・・同意。
VC、mingw へのインストールと、 日本語関係の話題をスレからコピペで纏めてみますた。 あと、めぇるでwx450.htmとwx453.htmの翻訳を頂きました。 後ほどうpります。 さんくすこー! > かす氏
win98seだとコンパイルできん
コンパイラとそのバージョンは?
Win98でコンパイル・・・
157 :
デフォルトの名無しさん :03/05/27 23:52
あげよう
158 :
灰 ◆v/.u/aNe9w :03/05/28 00:19
∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
wxURLクラスの説明 wx405.htm を訳しました。
例によって灰さんのアップローダをお借りしてます。
http://dot-gray.s33.xrea.com/cgi/source/0004.html >>灰さん
前回訳したwxFTP wx165.htm なんですが、
wx
FTP::GetInputStream の部分、以下の訂正をお願いできませんか。
wxStreamのseek機能のほとんどを利用できる。Seekはすべてのストリームで利用可能なわけではない。例えば、httpまたはftpのストリームはそれに対処しない。
↓
あなたは、seek機能を除いて、wxStreamのほとんどの機能を利用できる。seekは全てのストリームで利用可能なのではない。例えば、httpやftpのストリームはそれを処理しない。
ご面倒おかけしますがお願いします。
161 :
デフォルトの名無しさん :03/05/29 02:17
wxWindowsでスプライトは使えないんですか?
7upだけ
>>161 使ったことがないので間違ってる可能性があるけれど
たぶんwxImageクラスの
SetMask
SetMaskColour
SetMaskFromImage
あたりを使えばできると思う
dot-grayで登録してきますた。 SF、cvs共に使い方良くわかりませんが参戦しますです。
>167 全部つきで登録しました。 #何でもできます。 まずはCVSの立ち上げですかね。Webページに自動的に反映されるように設定してみます。
Mac OS X 版の screenshot がちゃんと AQUA で表示されていて感動した。 日本語入力も出来るなら、これを機に C++ 勉強してみようかな。
SourceForge.jpのCVSに、灰さんのヘッダ情報を織り込んだマニュアルソースを 置きました。 興味のあるかたはCVSでゲッツしてください。 #自動化は面倒くさそう……取りあえずはWeekly位を目安に手動でアップすかね…… >169 C++は、その生い立ちと目的がとんがっているから、言語的にかなり狂った 仕様になっているけど、やっぱり使っていて面白いよ。 お手軽なのはRubyかPythonにまかせるつもりでC++と付き合うといいと思う。
メルマガの作者ってココ見てるのかな? アンケート答えてあげたい気はあるんだけど、なんか身元がバレるのが 嫌なので勘弁してくれ、ってのは結構あるんですよね。 仕事場からしかインターネットに繋げられない身としては特に…
>> の氏
す、、、すまないっす。
和訳ファイル上がっているのに気が付きませんでした・・・。
あと、権限を頂いておきながら申し訳ないのですが、
SFの翻訳プロジェクト来週から参戦します。
>>169 win版は問題なく入力できますね。
mac版はどうなんだろう?
どうもです。普通に build しただけではダメでした。IM は起動した物の、フォント が豆腐になってしまいました。Font の指定が必要なのかな。 試してみたのは samples の text です。
じゃ、samplesのfontはどう?
>172 問題ないです。マターリやりましょう。 >173 すみません、古いのがUPされていました。 一応、形式は >133 をベースに進めようかと思いますが、いかがでしょうか? スタイルシートを参照するように加工ずみですので、 ・英文を<div class="o">〜〜</div>で囲う ・<div class="o">〜〜</div>で囲った部分をコピー&ペーストする ・貼り付けた<div class="o">〜〜</div>の前の部分を<div class="j">〜〜</div> に変更する ・<div class="j">〜〜</div>の中を翻訳する でOKですね。 タイトルの部分は<span class="o">〜〜</span>で ……ところで、SourceForge.jpにアップしたWebページが文字化けしていますね…… EUC-JPじゃないとだめなんですかね?だとしたら、修正しないと……
>177 自己フォロー続き。 up終わりました。これでまともに読めるはず……
>>179 追記:
全部 win2k sp3 上で確認しました。
ぶっちゃけ、MFCイヤーンな人の逃げ場になりますか?
こんなのはいかが? ・<img src="original.gif">のあとに <span onclick="show('j')">日本語</span>/<span onclick="show('o')">English</span> ・<head>の中に <script language="javascript"> <!-- function show(lang) { showRecursive(window.document, lang); } function showRecursive(node, lang) { if (node.className == 'j' || node.className == 'o') { if (node.className == lang) { node.style.display = "block"; } else { node.style.display = "none"; } } var array = node.childNodes; for (var i = 0; i < array.length; ++i) { showRecursive(array[i], lang); } } // --> </script>
う・・・ブロックレベル要素かどうかってどうやって調べるんだろ。 if (node.className == lang) { node.style.display = "block"; } else { ↓ if (node.className == lang) { if (node.tagName == 'DIV') { node.style.display = 'block'; } else if (node.tagName == 'SPAN') { node.style.display = 'inline'; } } else {
>179 おおっ、素晴しい。 さっそく適用してみました。 >181 取りあえず、マージしました。 >182 なると思う。どのレベルを求めているかによって違うだろうけど…… >183 JavaScriptはちょっと抵抗あるなぁ。 いいとは思うけど……
>>182 どういうところがイヤーンなのかによると思うけど
<span class="j">と<div class="j">で訳文の背景色が違うのは意図的なんですか?
>187 意味なし……というか、別だったっけ? 一応、スタイルシートでは同じ色を指定しているつもりなんだけど…… 太字のままだから、違う色に見えるというのはあるかもしれないけど。
ガン(・∀・)ガレ!!
193 :
デフォルトの名無しさん :03/06/07 12:21
途中で終わる予感
クラスリファレンスのマージ終わったなりよ。
をっつかれっす。 もっちょい、もうちょいで参戦できそうでおま。
>196
CVSとWebの両方にマージしました。
この文の翻訳者のymasuda [
[email protected] ]さんは新しく
SourceForgeに参加された方です。
wxPythonがメインとのことですが、ドキュメント翻訳は取りあえず
一緒に行うことになっています。
よろしくお願いします。>ymasudaさん
#といってもこっちは見ていないかな?
|u^=)・・・
>> 201 作業ご苦労様です. しばらくは印刷系を中心に進めていく予定です.皆様よろしくお願いします.
>>202 よろしくお願いします。
>> の氏
亀レスですが、以前に出ていたcssで色の設定が変わってるかもってのは、
最初に漏れが出したサンプルと、の氏の出したプロジェクトの方の
ファイルのcssの設定がずれているせいかも。
漏れはWebセーフを考慮せずに色を設定していたのですが、
の氏の設定ではそれが考慮されていたので、違和感を覚えたのかも?
# 当時と現在で設定が変わってるような気もしますが・・・。
あと、追加で<li>、<hN>な奴(他にもあるかな?)は
<br><span class="o">〜</span>でやった方がいいかもですね。
ちょっと、<a>な時にクリックし難いように感じました。(wx423.htmとか…)
ん?あれ?もしかして、IEとMoz、Opeでビジュアルが著しく違う?
http://wxwindowsjp.sourceforge.jp/docs/html/wx/wx423.htm たった今、ie v6, moz v1.4r, op7 で見てみたのですが、
他はOKだけど、ie v6だと、見た目がおかしな感じになってる。
本筋じゃないですが、ちょっと、cssをチェックした方がいいかもですね。
あと、 プロジェクトHPのリンクでうちが本家になってますが 本家はSFの方にしたほうがいいかもー。 私は、SFを本家と考えているので…。 ・・・酔っ払ってるのでこの辺で・・・。
>203 cssのコメントを間違えていました…… 指摘サンクスです。これでOKかな?
>>205 乙。OKでした。
ie6 moz1.4r opera7 on win2k sp3 で同じように表示されました。
>>203 > ちょっと、<a>な時にクリックし難いように感じました。(wx423.htmとか…)
これの原因わかりました。
<a href="foo">
<div class="j"> 〜 </div>
<div class="o"> 〜 </div>
</a>
こうなってるから、リンクのクリックエリアの検知がブロックに
対して行われてますね。
<a>をそれぞれの<div>中身に対してはればOKですね。
<div c="j"><a>〜</a></div>
<div c="o"><a>〜</a></div>
>>209 乙です。口ばっかりでスンマソン。
> イイ感じ……これでSourceForge.jpのCVSと連動できれば無問題ですな。
妄想癖が過ぎるかなとびくびくしてただけに、う、嬉しい。
一応セキュリティについては、
・書き込み処理に関するものは、全てIP保存。
・匿名串は弾く。(*)
・HTTP_REFFERのチェック。(HTTP_HOST、FORWARDED辺りもかな?嘘つかれたら無駄だけど)(*)
・<STYLE><SCRIPT>タグは原則使用禁止。
・使用できるタグを限定。
・外部リンクを限定(<A>、<IMG>等)
・HTMLのヘッダに仕込んだ文書情報はシステム側で全て一元管理。(*)
・万がイチ、アレな人がきちゃたら、IPブロック等。(*)
文末に(*)が付いていないものに関しては実装しているので、
現状でも試しに * 違うファイル * を上げてもらえればエラー画面が見れます。
詳しくは、ソースのpylib/transdoc.py参照。
最悪、必ず1つ前の状態は残しているので、アレな事態になっても復旧可能なはず。
cvsがcgiから呼び出せればHistroyの実装に関しては楽が出来ますね。
出来ないのであれば、diff & patchを活用・・・かな?
(それでも200MB程度のスペースで済むはず・・・。)
続く
続き
また、さらに実装したいもので次のものをつけようかと思っています。
・フリーズ、または、解除依頼インターフェイス。
(議論の余地がなくなった文書に関して変更不可依頼。または、その逆。)
・フリーズ依頼、解除スコアビュー。(フリーズ依頼、解除が来ている文書の一覧)
・一定権限所有者用フリーズ、解除処理インターフェイス。
・アレな事態の為の、一定権限所有者用ロールバックインターフェイス。
・同事態、同権限者用のブロックIP追加インターフェイス。
・会議室に2chライクフロート型スレッドインデックス。
(翻訳ファイルうpか、mail欄sage入力以外で浮上)
・トリップ機能(翻訳うp、会議室共通。メアド、HP等で一意性を出せいない人用)
・自動文字コード変換。
(HTMLコメントでシンボルキャラクタを埋め込めば行けるはず・・・、
そこまでしたらうざいかなぁ。)
(・遊びでうpランキング(ななしさんは除外、結構面白そうな気が。))
なんていうか、2chから派生したプロジェクトならば、
可能な限り2chヌラが気軽に参加できるようにしてみてーなー、
なんて思ってるのですよ。奥さん。
んでは、
>>206-207 の評価ageをしてみる。
# あ、ダウンローダーcgiが動いてなかったので修正しますた。
sageてた・・・。鬱だ・・・。
2.4.1リリース
細かいセンテンスごとにWikiみたいに翻訳に参加出来るのはいいアイデアだね。
>214 見れぬぅ〜 リンクをミスっているみたいですな
失敬。スクリプトミスでuploadできてませんでした。 今度は大丈夫のはず。書き忘れていましたがエンコーディングはUTF-8です。
翻訳時のフォーマットを整えるのが面倒なので、簡単なマクロを書いてみました。 xyzzy用デス。 #調整すればemacsにも使えると思う。 ―――――――――――――――――――――――――――――― (defun set-div () (interactive) (save-excursion ; (kill-region (point) (mark)) (kill-selection-to-clipboard) (insert "<div class=\"j\">") (newline) (newline) (insert "</div>") (newline) (insert "<div class=\"o\">") (newline) ; (yank) (paste-from-clipboard) (newline) (insert "</div>") (newline))) 続く
続き (defun set-span () (interactive) (save-excursion ; (kill-region (point) (mark)) (kill-selection-to-clipboard) (newline) (insert "<span class=\"j\">") (insert "</span>") (newline) (insert "<span class=\"o\">") ; (yank) (paste-from-clipboard) (insert "</span>") (newline))) ――――――――――――――――――――――――――――――
マウスで範囲を選択して実行すると、 <div class="j"> </div> <div class="o"> <選択した範囲> </div> <span class="j"></span> <span class="o"><選択した範囲></span> こんな感じに調整してくれます。 私はこれに divspan.lとか名前をつけて site-lispに転がしといて、.xyzzyに (require "divspan") (global-set-key #\F1 'set-div) (global-set-key #\F2 'set-span) とか設定しています。
DreamPlanet
>>214 見れますた。
ついでにgnu gettext & iconv1&2 for win32も突っ込んでみたので
後日bcc32への導入記が書けるやも。書けないやも。
今、
>>69 (wx16.htm)をSFにマージしているのですが、
最初に 65 氏が出された訳でいいような気がし捲くっています。
どうでしょう?
それか、
>>69 以降の議論を誰か上手くまとめてplz。
# 漏れにはついていけないレベルで全然ダメぽ。
>>209 CVSの使い方勉強してて、の氏の仰っている意味がわかりますた。
禿しくむりぽそう…。鬱。
問題の文を分解してみると、こんな感じかしらん……
If you
A decide
| to allocate a C++ array of objects
| A A
| | L (such as wxBitmap)
| L that may be cleaned up by wxWindows,
| 「make sure
| |
Lyou V
delete
A A the array
| Lexplicitly
| Lbefore wxWindows has a chance to do so on exit,
|
Lsince calling delete on array members
will cause
memory problems.
that may 〜〜は、arrayにかかる関係代名詞の限定用法だと思う……
ここでifを喰っちまうと、その後のyou delete 〜〜の部分が分離してしまって、
カンマで区切ってあるのが不自然になってしまうと思う。
(結び付ける句が無くなっちまうつうことですな)
英文法は詳しくないのではっきりとは言えんが……
こんなページ発見……
http://www.alc.co.jp/eng/grammar/index/
Boa Constructorのガイドのチュートリアルを超訳しているんですが どこに投げればいいですか?
>>225 解らないなりにがんばってみたのですが、こういうことでいいのかな…?
もし、貴方がwxWindowsがメモリ管理を行う(終了時にクリーンアップ
を行う)オブジェクトをC++ 配列として動的にメモリ確保を行う場合、
wxWindowsはnewによって確保されたオブジェクトが配列か否かを
識別することが出来ない為、プログラマ自身により配列の削除を行う
必要があります…が、その処理は、wxWindows終了時のクリーンアップ処理
の前に、明示的に行う必要があります。
なぜなら、wxWindowsクリーンアップ後ではdelete[]との二重削除が発生
してしまうからです。
# …取りあえず、ほっておいてしまおうかなぁ。
んー単にBoaを学ぶがてら適当に訳しただけなのでかなりいい加減な訳なのと、
一部原文と全然違う説明をしていたりしてますので、翻訳プロジェクトに入れるのは
マズーだと思いました。で、2chのpython系のwikiないかなーと思ってたんです。
気楽な気持ちでやってたんで。
http://montpython.s13.xrea.com/ に置きましたんで後は好きにして下さい。はい。
>>230 Getting Started Guide for Boa Constructorの1.1と2.1〜7ですね。
画像の文字まで翻訳するのはえれー大変だったはず。
凄いじゃないですか。
いや、あんたすげーよ!
> に置きましたんで後は好きにして下さい。はい。
サイトは維持されないということ?
んじゃ、もしサイトが消えちゃった場合は、
うちで誰かが清書してくれるの待ちながら、
公開しちゃいます。ぐへへ。
>>233 あちゃー、痛いですね。
MSってメディアの再発行って出来ないんでしたっけ?
もし2003を買ってしまったのであれば、古いのは売ると言う手もあります。 (アップグレード買った場合除く) 権利譲渡手続きをきちんと行えば、違法にはなりませぬ。
間に合わなかった…か?
>236 おお、サンクス。参考になります。 ……まあ、2003買っちまいましたけどね。 ちょっと触ってみた感じではなかなか良くなっていそうな感じですが。 #といっても、.netとかは相変わらず使わないつもりです。
240 :
灰 ◆v/.u/aNe9w :03/06/29 02:33
wx21.htm - wxWindowsと共に配布されるユーティリティとライブラリ - を超訳して見ますた。 んで、そこの Frame Layout library : ドッカブルフレームに関するライブラリ Styled Text Control library : テキストボックスの構文ハイライトをしてくれるライブラリ この辺り試された方います? 興味アリアリなので識者のレポートキボンヌ。 あと、wx20.htm - ファイルの取り扱い - を訳してくれる勇者の光臨キボンヌ。 なんか、微妙に難しくて訳せない・・・。
>>240 wx20.htm コミットしておきました.本格的な作業は python ライブラリ
リファレンスの和訳プロジェクトが終わってから入りますね.
>240 Frame Layout libraryは面白そうですね。サンプルをためしてみましたけど、 結構マトモにフロートしているみたいです。 ソースを見てみると、フレームにプラグインを追加するスタイルのようで、 結構簡単に使えそうでした。 #といっても、これを使うアプリを作成するのはしばらくなさそうですが…… Styled Text Control libraryのサンプルは動作せず……あれ? wx20.htmは増田さんが先に翻訳していました。早っ
>243 wxEmbed is a sample application developed with wxWindows to demonstrate various ways of embedding Gecko. It contains a sample browser and several other demonstrations of embedded Gecko. つうことで、C++でGeckoベースのブラウザを作るときの簡単なサンプルになりそうですな。 BSD(ライク)なライセンスなので、面倒なことも少なそうですし。 #私は作らないけど……
246 :
灰 ◆v/.u/aNe9w :03/06/30 01:53
>>241 おお、ありがとうございます。
こんなに早く勇者が現れるとは思ってもいなかったので、
えれーびっくらこきました。
Python和訳プロジェクトにはお世話になりっぱなしです。
うーん、無責任な発言ですが…、応援しております。
>>242 結構簡単に使えそうな感じですね。
これが使えるだけでもかなりの集客力がありそう・・・(特にBCC、MinGWユーザー
ちょっくらチュートリアルの作成に挑戦してみまふ。
…って今、ライブラリをコンパイルしてサンプルを試してみたのですが、
Netscapeっライク?なドッカブルとしてに動きますね。
うわー、これいいわー。すげー。
BCC32で、STCのサンプル動きました。
CPPの構文強調だったのですが、
シンプルに組み込めそうな感じです。
200行程度のソースで構文強調付きテキストエディタが作れるのは、
結構よさげですね。
>>243 ,245
Geckoベースの2chブラウザが作れる勢いなのかしら?
うわー、この辺もいじってみたいなぁ。
>>244 おお、凄く解りやすくなりますね。
この辺、CVSで自動化できるといいんだけど、なんか出来そうにないですね。
どうにかならんものか…。
>>247 乙です。ばっちりです。
コミットしておきました。
参加表明は
>>166 をご参照下さいまし。
お待ちしてます、うふふのふ。
>>250 やべ、<span class="help">ってタグ打っちゃった。
<div class="comment">に直しますです。
# 業務連絡スマソ。
254 :
灰 ◆v/.u/aNe9w :03/07/02 02:34
学校でwxFrameの最後の方を翻訳してあぷろだにあげておきました。 学校から2ちゃんへの書き込みは制限されてるので報告が遅れましたが、 確認&コミットお願いします。 これからwxFrameを後ろから順に翻訳していきます。
256 :
灰 ◆v/.u/aNe9w :03/07/02 21:27
>>254 > wxFRAME_TOOL_WINDOW と、wxFRAME_EX_CONTEXTHELP が上手く動きません。
wxFRAME_TOOL_WINDOW については自己解決しますた。
v2.4.1に上げた後に試したところ上手く行ったのですが、
原因は、タイトルバーが細くなっているのに漏れが気付いておりませんですた!
……………逝ってきまーす。
んでも、wxFRAME_EX_CONTEXHELPが動かんなぁ。
多分、これも漏れが何か間違っているんだろう…。
調べてみます。
あと、v2.4.1入れた時のインストール記を
http://dot-gray.s33.xrea.com/topics/install-bcc32.html#proc_241 に書き足しときますた。
v2.4.0とやり方は殆ど変わら無いんですけどね。
# *.lib、*.dll にコンパイラ環境サフィックスがつくようになってますね。 *_bcc.lib 見たいな感じで。
>>255 ありがとうございます、コミットいたしました。
では、私は上から訳していきます。
wx163.htmの翻訳完了しました。 あぷろだにあげておきます。 ・・・気まぐれで帰宅してから3時間以上ぶっ通しで翻訳してたけど、本当は そんなヒマ人じゃないんだが・・・これもヲタクの性か(w
いくつか修正してあげ直して置きました。
>>256 翻訳不能になっていたり、不可解な翻訳になっていたところをコメントアウトして
翻訳しなおしました。訳を比較しておかしいと思うほうを削除してください。
>>257-258 なんてこったΣ(゚д゚ )
テレビ見てたら先越されますた。
> 訳を比較しておかしいと思うほうを削除してください。
了解です。
んでは、コミットしてきます。
コミットしてまいりました。
思兼 氏、ありがとうございます。
かなーりばっちりな感じで、大変助かりました。
http://wxwindowsjp.sourceforge.jp/docs/html/wx/wx163.htm#wxframe >>254 思兼 氏が訳してくれたので、
wxFRAME_EX_CONTEXTHELP の使い方が解りますた。
2段階構築っつー技を使はきゃいけなかったみたいです。
# コンストラクタが一段階目で、Create()が二段階目。
class MyContextHelpFrame : public wxFrame {
public:
MyContextHelpFrame(wxFrame* parent, const wxString& title
, const wxPoint& pos, const wxSize& size, long style=wxDEFAULT_FRAME_STYLE) {
// こんな感じに、wxFrame のサブクラスのコンストラクタの中から
// Create() の前に SetExtraStyle() を呼び出せば OK。
SetExtraStyle(wxFRAME_EX_CONTEXTHELP);
Create(parent, -1, title, pos, size, style);
}
};
一応、wxFrame の全ウィンドウスタイルが試せるサンプルを上げといたので興味のある方はどうぞ。
# makefile が bcc32 用なので、そこは上手いことやってくださいな。
http://dot-gray.s33.xrea.com/cgi-bin/source/0015.zip
>>260 SFプロジェクトページより
活発さ: 83.8384%
ちょっと嬉しくなりますね。
では、おやすみなそい。
wxWindowsとCPPUNITって相性悪いの? なんか変なところでエラーでるんですけど。 wxBase使わんとだめ? この質問でわかるニュータイプな人、レスお願い。
264 :
灰 ◆v/.u/aNe9w :03/07/03 20:23
思兼 ◆l3iwkTImVo 氏が日本語プロジェクトに参戦されました。
よろすこオナガイシマス。 > 思兼氏
>>263 識者降臨祈願age。
誰かチェックアウトの仕方を教えてください.
とりあえず
http://www.hunes.co.jp/oki/wincvs/ ここの、SSHによる接続試験までは成功しました。ですが、チェックアウトしようとすると
cvs -z9 --no-knjwrp checkout -P -d wxwindowsjp wxwindowsjp
cvs server: cannot find module `wxwindowsjp' - ignored
cvs [checkout aborted]: cannot expand modules
*****CVS はコード 1 で終了しました*****
となります。ためしにwxwindowsjpをboostjpにしても同じでした.
>>266 キタ Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒(。A。)!!!
動きました。数時間悩んでたんだけど、聞いて良かった・・・Thanx!
Let's wxWindowsもいつのまにかガラっと変わってますね。
そういや前のLet's wxWindowsにあったwx450.htm(参照の使い方)の訳とかが、
日本語化プロジェクトの方にコミットされてない気がするんですが、どうですか?
>>267 ご指摘サンクスコ!
コミットしてきますたー。
これで、もううちから消しても大丈夫かな…。
そのままの勢いで,WinSCP2を使ってWebの方もちょっと更新. wxFFileとその他いくつか細かいのを翻訳してみました. wxFileはwxFFileと殆ど同じだけど,とりあえず今日はここまで. (´-`).。oO(だれかwxFileをwxFFileみながら翻訳してくれないかなぁ) データベースとかXMLとかGUIとかよく判らないので,こういった小物から 翻訳していきます. GUI抜いたら翻訳できる部分殆ど無いじゃんとか突っ込まないように(w 嘘を翻訳しないように,GUI回りは後回しで,自分で使ってみながら 翻訳していきます.
なんとなくwxAppの訳をしてみました。 うpロダのほうにあげておきました。 つたない英語力なんで変なところもいっぱいあるかもしれませんが よかったら使ってやってください。
>>270 乙!
で,コミットしようと思ったら,うぷろだからhtmlをDLできないのね。そのまま
見たらサーバーに中身書き換えられるし。
つーことでよろしく>灰さん
>>270 wxAppはでかいよぉ。
あんた凄いよ!乙!
ファイルはありがたく頂戴いたします。
後ほどうpりますです。
>>271 うぃ。コミットしてきます。
うpろだも、広告つかないようにしてきまーす。
どうでもいいけど、Topicの「参照(reference)を・・・」というの,C++の参照とかぶる から別の言い方のほうが良いんじゃないかな。 「このドキュメントを読む前の注意事項」とか
>IEではポップアップが画面から左に はみ出て読めなかったりするから, Mozillaでも試しましたが、 やっぱりだめですな。 「別ウインドウで表示」にする必要がありそうです。
インストールしたときにdocsフォルダにあるreadme.txtを訳して
うpしたんですが役に立ちますか?
あ〜、でもライセンスのところはぼろぼろ&他と結構内容かぶってるんだけど。
>>274 昔office2000についてたbook Shelf 2.0なるものと
120にある専門語辞書参照サービス
ttp://www.nova.co.jp/webdic/webdic.html を使ってます。でもこのサイトってホントに専門的な単語ってぜんぜん載ってないんでウツ。
>>277 乙です。
readmeも翻訳されていると嬉しいですね。
でも、どうしましょ?
cvsに加えてSFのリポジトリで公開とかにするといいのかな?
ご意見求む。
>>279 適当に使っていただければOKです。
ただ、あんまし訳当てにしないで(汗
つーか、あんましSourceForgeとかよく知らん人なのでつ・・・
wxWindowsのライセンスって、スタティックリンクしてもオープンソースに しないでもいいLGPLってかんじだよね? ということは、ビルドしたライブラリファイルを再配布しても問題ないのかな? 後輩にMSYS教えてconfigureの仕方を教えて・・・とやるよりも,こっちでビルド して,できたライブラリファイルとヘッダファイルをMinGWのincludeディレクトリや libディレクトリの中にコピーさせるつもり。これを身内だけじゃなくて,WEB上で 配布してもいいのかな?
>283 ここのことですな。 2. The exception is that you may use, copy, link, modify and distribute under the user's own terms, binary object code versions of works based on the Library. どちらかというと、逆に 『バイナリバージョンならば、好きなライセンスで配付していいよ』 といっている様に思う…… #思兼さんのやりたいことは"copy"にあたるかな? ソースコード自体は、wxWindows Library Licence,かLGPLでしか配付できない みたいだけど……
厨な質問でアレなんだがwxWindowsって日本語で何て読むんですか?(読んでますか?) ダブリューエックスウィンドウズ? ダブルエックスウィンドウズ? (これくらいしか候補が浮かばない) っていうか頭のwxが何の略かが分からない。 誰か知ってる人、解説キボンヌ。
>>283 LGPLなライブラリ自体をコンパイルして配布すること自体
全く問題ないのでは?
もちろん公開したwxWindowsのバイナリを入手した人がwxWindowsの
ソースコードを入手できるようにしておく必要があるけど.
スタティックリンク云々はwxWindowsをリンクしたソフトウェアを
作ってそれをバイナリで配布する場合の話でしょ?
>> 辞書
「リーダーズ+プラスV2」を使っています.
>> 何の略
http://www.wxwindows.org/intro.htm によると,もともと Windows と
X Window System でクロスプラットフォームなライブラリを作ることを目的に
開発されたため,
... wxWindows (w for Windows, x for X) ...
ということだそうです.
>>287 サンキュ!
じゃあ、読み方としては
「ウィン・エックスウィンドウズ」くらいかなぁ。
とりあえず今度から脳内でそう呼ぶことにするわ。
>>284 ,286 thanx
とりあえず,ライブラリとincludeファイルだけを,Mingwのディレクトリに入れて
動かせるかどうか試してみた。
実際に動かすには,ウィンドウズ関連のライブラリをいっぱいリンクさせないと
いけないので,wx-configが使えないととてもコンパイルがめんどくさかったけど、
とりあえずは動いた。
とりあえずリンクはバッチファイルを作って,
http://www63.tok2.com/home/bitwalk/download.html#mingw ここのパッケージをインストールした後にバッチファイルその他をコピーすれば
MSYSなくても使えるようにするつもりです。
まぁ学校ではLinux使ってるから,MSYSとwx-configを教える方が良いのかも
知れないけど。
(´-`).。oO(デバッグ版スタティックリンクライブラリ,容量が100Mを超えてるよ。MFCの方が小さい?)
Dialog Editorでデザインしたwxrファイルって、どうやって 使用するのでしょうか? なんか便利そうなんだけど。
>289 >(´-`).。oO(デバッグ版スタティックリンクライブラリ,容量が100Mを超えてるよ。MFCの方が小さい?) wxmswd.libのこと?うちのは26.8 MB (28,146,186 バイト)だよ #VC++.net2003でDLL不用になるようにコンパイル
>>291 いや、こっちはMinGWなんだけど、どうもGCCってデバッグ情報が大きい気がする。
それともう一つ思ったんだけど,MinGWでつかうならUnicode版じゃ無いほうが良い
と思う。コンパイラがUnicodeに対応してないのに,ソースをUnicodeで書いたらコンパイル
自体が出来ないし,UTF-8で書いたらそもそもwchar_t型に文字が入らないし。
多分2バイト目が\な文字に注意したら,非Unicode版ならSJISで書いたソースの中に
日本語文字列を入れたら,簡単に日本語アプリが作れる。
>>293 unicodeのこと、詳しく知らんのです。
>>292 の結論に至った過程を書くので,誰か
間違っている所を指摘してください。
まず、全ての文字に2バイトコードを割り当てたunicode(UCS2)が基本としてあって,
ASCIIコードをそのまま用い,それ以外を最大3バイトで表すUTF-7(7bitコード)と,
UTF-8(8bitコード)がある。
で、wchar_t型は16bit整数で,UCS2と非常に相性が良い。Windows2000/XPの内部
でもこれが使える。(〜Wという名前のAPI)
wxWindowsでも,--enable-unicodeをしたら,wchar_tを用いて内部でUCS2を使う。
だけれど,ソースをUCS2で書いたらコンパイルできない。
試しにUTF-8で書いたら,もちろんコンパイルは通るけれど文字化けする.
結論:UCS2をコンパイルできないとソース内にユニコードの文字列を直接書き込むのは不可能。
> 結論:UCS2をコンパイルできないとソース内にユニコードの文字列を直接書き込むのは不可能。 unicodeとてバイト列。可能。
>>295 ・・・なるへそ、プログラム部分はASCIIコードで書いて,文字列部分のみをなんとかして
UCS2で書くんですね・・・
・・・・・・やっぱりSJIS使います。後輩に使わせるためにやってるんで・・・・・・
(´-`).。oO(もしや
>>295 は,コンパイルできなくても書き込む事はできると言っているだけ?)
>>296 >(´-`).。oO(もしや
>>295 は,コンパイルできなくても書き込む事はできると言っているだけ?)
ASCII対応のコンパイラにSJISの文字列リテラル渡してはいけない法律はないだろう?二バイト目が"のコードとかだと悲惨だが。
>>297 もちろんSJISはね。問題なのは2バイト目が\の時だったと思うけど。
でも、UCS2ではASCII文字も非ASCIIコードが割り当てられているから,javacみたいに
コンパイラが対応していないと,コンパイル自体が出来ない。UTF-8では文字化けする。
とりあえず,
>>294 の「不可能」っていうのは,gccでコンパイルできないor実行時に
文字化けするという意味ね。
結局,MinGWで日本語を使うには,SJISを使ってコードを書いて,2バイト目が\な文字の
直後に\を追加するプリプロセッサをかますしか無いのかな。GCCのDevelopmentPlanにも
unicodeサポートは無いみたいだし。
>>298 お前はSJISを使うプログラムを書くときは全角英数を使用するんですか?
>>299 ???
少なくとも文字列定数以外には半角文字っつーかASCII文字を使ってるので
問題ありませんが何か?
>>300 だろ?だったらなんで俺にけちを付ける?
>>301 え〜っと、けちをつけるってどれのことですか?
コテハンもIDも無いので判らないのですが。
というか,私が問題にしているのはunicodeのことで,SJISでは\問題以外は
全く問題ないのですけど,どこからSJISの話に?
>>290 英語のドキュメントを見る限りでは,普通にincludeしてからごにょごにょって
感じなんだけど・・・今--enable-resourceつけてconfigureし直しているので,
判ったら書き込みなおします。
なんか--enable-prologしないといけないみたい。・・・もう眠いから、多分明日の
夜くらいになります。
>>303 そこを見るとXMLつかったリソースもあるみたいですね。
http://wxwindowsjp.sourceforge.jp/docs/html/wx/wx418.htm wxXmlResource::LoadDialogでダイアログ作ってくれたりするみたい。
まだunder developmentな所が多いけれど,これからに期待です。
>>305 Cの規格にwchar_tが追加されたことを知ったときは喜んでたけど,実際に
使えるのはまだまだ環境がそろいませんね。
文字列定数の前にLをつけるとUNICODEに変換してくれるというのも,ASCII
コードしか変換してくれなかったら意味が無いし。
遅くなったけどunicodeの実験結果 gccに-std=c99オプションをつけて,\uを有効にしてコンパイル wchar_t str[] = L"\u3042\u3044";//"あい"のunicode wprintf( str ); MessageBoxW( NULL , str , str , MB_OK ); wprintfは実行しても何も表示されず。L"hoge"とかなら表示できたので, ASCII文字しか表示できないのかもしれない。 MessageBoxWは成功。ちゃんと「あい」と表示されてる。 ただし,g++では,windows.hをincludeすることで一緒にincludeされる rpcndr.hがコンパイルできなくて使えない。 ということで,現状でも\uを使うことで,unicodeを埋め込んだプログラムを g++で使うことは可能。選択範囲の文字列を\u形式に変換する機能を持つ エディタを使えば,簡単にunicodeのwxWindowsアプリを作れる。 gccが,L""文字列の中のマルチバイト文字列をunicodeに変換してくれる ようになればもっと楽なんだけどな。せめてUTF-8だけでもいいから対応 して欲しい。
追加報告 gccは,一応文字列の解析に,環境変数LANGを用いてマルチバイト文字列 からunicodeに内部で変換している。(少なくとも今gcc3.3のソースを見た限りでは ちゃんと変換している部分があった) だけどbitwalkのMinGWパッケージに入っているgcc3.2.3ではそれが有効にならない らしい。この機能はgcc3.2.3でもあるはずだから,configureするときのオプションか 何かでdisableされているのかも知れない。 これから,MinGWからgccのソースを持ってきて,configure等を確かめてみる。
結局,configureしなおしてもダメでした。というかGCCのスレに同じようなことを やっている人が・・・鬱だ。 でも,gcc3.2.3のソースを見ていると,UTF-8からunicodeへの変換をするソースが #if 0〜#endifでコメントアウトされていたので,これからに期待・・・かな。 マルチバイト文字列をunicodeへ変換する関数もちゃんと呼ばれてない気がするし。
>>290 結局,あの後configureしなおしてからdialogedをmakeしようとしたんだけれど,DailogEd_
resources.oが無いとかでまだ出来てません。
だれかダイアログエディタのビルド成功した人いませんか?
>312 いや、これは単純に「この参考資料」程度の意味でしょう。 文章リストの頭にあるわけですし。 あと、 for remaining char * return values〜〜 のところは、 「wxStringはwxWindowsによって参照カウントされるから、char*を(コピーして) 保存しておいてもwxWindowsが勝手に割り当てや削除をしちまうぜ」 ぐらいの意味でしょうね。
>>313 ありがとやんす。
”このリファレンスを読む際の注意”に直してきますた。
しばらく、"トピックの概要”の辺りを翻訳してますです。
dialogedをコンパイルしてみました。makeは何故か失敗するけれど,dialoged.rcを windresでコンパイルしてからソースファイル全部をコンパイルしたら動いた。 で,wxrファイルの使い方。 dialogedで作ったwxrファイルには,ダイアログの構造を書いたリソースが文字列定数 で書かれています。 プログラムの中でこれを使うには #include "hoge.h" #include "hoge.wxr" #include <wx/resource.h> ... wxDialog *dialog = new wxDialog(); ::wxResourceParseData( hoge ); dialog->LoadFromResource( (親ウィンドウへのポインタ) , "hoge" ); dialog->ShowModal(); こんな感じでできます。もちろんこのままだとダイアログの動作を定義できないので, wxDialogを継承したクラスを自分で作って,hoge.hの中で宣言されている定数等を 使って動作を実装する必要があります。(↑の例だと無意味なダイアログができる) 詳細は,wx477.htmを見てください。(っていうか訳せよ>俺)
P.S. サンプルプログラムにresourceってのがあって,そこでダイアログとメニューを リソースから取り出して使っているので,それを読めばすぐにわかると思います。 そのサンプルプログラムの中で,__WXMSW__ではリソースを実行時にファイルから 取り込んでいますが,コメントを見る限りWindows用のコンパイラの中に拡張子がwxrな ファイルのincludeを許さないものがあるかららしいです。 wxrファイルのincludeが出来るのなら普通に使えますし,出来なくても拡張子を wxrからhに書き換えたらいいだけなので,サンプルプログラムで行っている場合分けは 必要ありません。
>>318 gettextって,moファイルから入力したあとロケールにあわせて文字コード変換を
行うらしい。
http://www.gnu.org/manual/gettext/html_mono/gettext.html#SEC149 gettext not only looks up a translation in a message catalog. It also converts
the translation on the fly to the desired output character set.
っつーことで,poファイルをeuc-jpかUTF-8でエンコードして,プログラムでは
ロケールにSJISをするという実験プリーズ
明日の昼になって誰も実験してない&暇&気が向いたら私が実験します。
スミマセン、wx461.htmの翻訳ミスってました。
.poファイルのヘッダで
#, fuzzy
という行があると,文字コードの自動変換が行われなくなります。
このことを知らなくて,Make sure ...の文の訳に見当違いなことを書いていました。
>>318 そのページの.poファイルもfuzzyの行を外した方が良いです.
>>321 あーりがとー!
でけました行けました!
んで、別なところで不思議な現象が発生。
2.4.1 with bcc32 で wxLocale を使ったソースを、
FINAL=1でコンパイルしたところ
コンパイルは通るけど、実行するとエラーで止まりまふ。
デバッグと FINAL=hybrid は問題がないのだが…。
他の環境でも、この問題は発生してますでしょうか?
>>322 FINALってのが何か判らないけれど,最適化とかリリースモードという意味なら
g++の-O4で無問題です。
>>323 リリースモードのことです。
言葉足らずですいません。
そして、ご回答ありがとうございます。
むぅ、g++は大丈夫ですか…。
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
wxWindowsいいねー "GTKっぽさ"が嫌いでこの系統のGUIツールキットから引いてたクチとしては 各プラットフォームnativeに近いのは凄くいい 訳やってる人たちもがんばれー
出来上がり実行ファイルがバカでかくなるんですが、どうすればいいんでしょう 単純にリンカに-sを渡しても、まだずいぶん大きいです
>>327 質問する時はもうすこし環境とか数値とかを出しましょう。
リンカに-sを渡すという事は,gccのリンカかな?私はMinGWを使っているので,
Cygwinではどうなるか判りません.
とりあえず,MinGWで実験してみました。
対象 minimalサンプル
コンパイラ g++-2.3.2
コンパイル法
MSYS上で,wxWindowsのサンプルソースのあるディレクトリ内で以下のコマンドを実行
$windres -i minimal.rc -o minimalrc.o -I(インクルードディレクトリ)
$g++ *.cpp *.o -s -O2 -o minimal `wx-config --cppflags --libs`
結果
258,560 byte
wxWindowsのconfigureオプションは忘れましたが,とりあえず--enable-sharedでDLLを
有効にしています.DLLを使用時258KBというのは,MFCと比べてそれ程大きいわけでは
無いと思います.さすがにWin32APIを直に叩くよりはずっと大きいですけど(w
>327 気にすんな。C++Builderとかと比べてもそれほど悪くは無いと思うよ。 気に入らないようなら、wxWindowsでプロトタイピングしてそのあとに API直叩きで最適化するのがよろしかと。
>>328 で書いたコンパイラ,g++-3.2.3の間違いでした.
今日はwxAppの概要を訳して,wxStringを少し修正&訳の続きを途中まで
しました.もしwxStringを翻訳中の人がいたらゴメンナサイ.とりあえず明日
にはwxStringの訳を終わらせるつもりなんで,先にしてた人がいたらここで
報告してください.
>>326 漏れも同じ動機で wx を使いはじめますた。
応援ありがてー!
>>327 samples/minimal の実行ファイルサイズ
borland bcc32 5.5.1 1,588,736 byte リリースビルド
cygwin g++ 3.2 2,207,232 byte デバッグビルド
win な環境だと VC 以外 (>>12- あたり参照) はでかくなりますね。
cygwin のリリースはどうなんでしょう?
やたらコンパイルに時間がかかるのでうちでは作ってないのだが…。
>>330 乙。
locale周りを調べたら復帰しまふ。
言うまでもなく
it goes without saying that ほげほげ. ほげほげということは言うまでもない。
335 :
灰 ◆v/.u/aNe9w :03/07/17 00:21
>>333-334 Thanx.その分だけ直してから寝ます.
なんか無知を晒したような気が・・・高専生なんてこの程度か.普通に文章を
読んで意味を感じる事は出来るが,訳すとなると大学受験で単熟語を叩き込んだ
人たちと差がついてしまう.
それって中2でやりますよ・・・なんて無粋な突っ込みはよしておこう
直しておきました.
>>337 マジですか?
一応今年の春の英検2級を正答率80%以上で合格したんだが・・・使えねぇ
学校で英語の授業が無くなって(選択で応募多数の為抽選で落ちた),秋の英検
準1級への勉強を兼ねて翻訳プロジェクトに参加したんだけど・・・この程度じゃ
ダメっすか?
>>338 中2だったかどうかは覚えてないけど、
常識範囲内だと思う。
2級ではそんなもんかもね。
勉強がんばれ。
wxSocket*って、誰か訳してます? まぁ…だぶってても良いから訳すか…
やっと自分で作ったリソースのコンパイルが通った。 けっこう面倒だね。
wxAssert で bcc32 551 がまた飛びますた…。鬱。
gcc に移ろうかしら…。
>>335 の件は、調べてみたのですが戻り値を第二引数として、
そのまま使用した場合の話を発見することが出来ませんでした。
近い話として、
The application shall not modify the string returned
which may be overwritten by a subsequent call to setlocale().
アプリケーションは返されたストリングを修正しないものとします、
それはsetlocale()への後の呼び出しによって上書きされるかもしれません。
http://www.opengroup.org/onlinepubs/007904975/functions/setlocale.html なんてのがありますた。
んで、これはbcc限定の話なんでbccスレに行って聞いてきます。
お騒がせしますた。
>>340 cvsで確認したところwxSocket系は、
まだ誰も手をつけていないので、
大丈夫だと思います。
うpお待ちしております。
bombsがデバッグモードでコンパイルしたものが上手く実行できないのはどうしてだろ? FINAL=1をつければ実行できるバイナリが出来るけど…
BCC32での話です
xmlのリソースエディタ、早くできないかねぇ。 subclassのところが美味しそう。
>>344 >>342 で書いた奴が原因です。
> wxAssert で bcc32 551 がまた飛びますた…。鬱。
リリース版はデバッグ関係が一切入らないので動作できるのですが、
デバッグ版は上記理由によりぶっ飛ぶみたいです。
ただいま解析中なり。
td32の使い方がやっと解ってきた。楽しい。
>>344 ある程度わかりますた。
wxAssert がおかしいって言うのは私の勘違いでしたゴメンナスン。
んでbombsは、wxSashWindowが原因でAssert発生。
..\common\object.cpp(197):
assert "classInfo" failed: base class 'wxSashWindow' is unknown
to wxWindows RTTI [in child thread]
この時点で、Appの初期化がすんでいないので
GUIでデバッグメッセージを出力できない。
んで、wxAssertは内部で以下の順でデバッグ用 win32api をコール。
OutputDebugString デバッグメッセージをデバッガに送る
DebugBreak ブレークポイント例外を発生させる
OutputDebugString は、Windows2000 の場合、adminまたはadminグループじゃないと出力されない。
http://support.microsoft.com/default.aspx?scid=kb;ja;274559 あと、DebugBreakは対応したデバッガがないと意味無し。多分。
なので、一見飛んだようにみえただけですた。
(td32でキャッチできるように出来ないのかな?)
OutputDebugStringの出力をみるにはビューアが無いとダメ臭い。
取りあえず、フリーソフトDebugTracerで確認できますた。
http://www65.tok2.com/home2/pentawar/ 駆け足ですがこんな感じですた。以上。
>169 ですが、Mac OS X でも問題無く日本語が入力出来ました。wxMac の問題 では無く、私が Gimp 用に設定していた環境変数が悪さしていたみたいです。
>349 それはすばらしい。 OSがしっかり対応していれば、それなりに使えるみたいだね。
bcc32 で samples/bombs のデバッグ版が動かない理由がわかりますた……。
理由:
wxWindows では実行時型情報を提供する為の仕組みとして、
wxClassInfo クラスと、マクロ DECLARE_DYNAMIC_CLASS(foo) と
IMPLEMENT_DYNAMIC_CLASS(foo, bar) を提供していまつ。
http://www.wxwindows.org/manuals/2.4.0/wx455.htm このマクロはそれぞれ、
static wxClassInfo sm_classなんちゃら;
virtual wxClassInfo *GetClassInfo() const { return &MainFrame::sm_classなんちゃら; }
と
wxObject* wxConstructorForなんちゃら() { return new なんちゃら; }
wxClassInfo MainFrame::sm_classなんちゃら(
"なんちゃら", "wxFrame", 0
, (int) sizeof(MainFrame), (wxObjectConstructorFn) wxConstructorForなんちゃら
);
に展開されます。
んで、wxClassInfo はコンストラクタ(src/common/object.cpp)で
各クラス内のスタティックな sm_classなんちゃら のポインタをチェインとして
登録するような仕組みになってます。
んで、wxWindows::msw のデバッグを有効にしている場合、
内部の WinMain にあたる wxEntry の最初の方で wxClassInfo のチェインをハッシュテーブルに登録。
更に、そのテーブルを元にデータの正当性(依存関係)のチェックを行ってます。
bcc32 は、その正当性チェックの部分で弾かれてしまっています。
しかし、スタティック変数は規格上最初に使用されるタイミングまでに初期化されていれば いいので、この場合 bcc32 の反応はある意味規格に則っているといえます。 逆に、wxWindows の方は各クラスのスタティック変数が、スタートアップルーチン前に 初期化されることを前提に動いているので問題があるともいえます。 取りあえず、bcc32 で bombs のデバッグビルドを正常に走らせるには 以下のような小細工が必要になります。 bool AppClass::OnInit() { ・・・略・・・ // start Dummy wxSashEvent::sm_classwxSashEvent.GetClassName(); wxSashWindow::sm_classwxSashWindow.GetClassName(); // end Dummy return TRUE; } むほぉ。
ときに偉い人。wxWindowsではTCP/IPレイヤが提供されてるようだけどSSLは提供されてないの?
余り自信はないが、多分これであっていると思う。 誰ぞ突っ込みプリーズ。 でもこれって、他の環境でも少なからず発生しうる現象な気がする…。 他の環境で同じようなことは発生して無いでしょうか?
あら、そうなんだ ありがとう偉い人
1年以上放置は誤読だった
ほんとだ・・・ライブラリ作成のガイドラインだけ作って,ライブラリ自体は作ってない・・・ 適当にググッた結果書き込んだだけだったのだ,スマソ.
DLLをコンパイルできないんですが、なくても大丈夫ですよね? そもそもDLLとはなんですか?
なくてもいけるけどないと困るの?
sample>minimalをコンパイルしたら21.6Mbもありますが仕様ですか?
うちでは 88KB だよ。スタティックリンクしてるのでは?
sample>artprovをコンパイルしたらこれまた21.6Mbもありますが仕様ですか?
make -f makefile.g95 wxusingdll=1 としました。 もしかして、MinGWが原因ですか?
もしかして、d:\wx\src\mswでコンパイルするときに make -f makefile.g95 FINAL=1 にしないとダメ?
スタティックリンクで、デバッグシンボル込みだとそんなものかと。 DLL作るか、FINAL=1ですな。 MinGW のみでのDLLの作り方は知らん。 Cygwin+MinGWであれば、 cd $WXWIN mkdir build-shared-debug cd build-shared-debug ../configure --with-msw --enable-shared --enable-debug make; make install; でいけると思うが…。
MinGWでは,MSYSを入れて同じくconfigure,make installですね. ・・・最近翻訳する気が起きない・・・だれか翻訳して欲しい部分をリクエストしてちょ. GUIとか通信とか前提知識が足りないから翻訳できる部分は少ないけど
wxWindowsのメーリングリストとかないのかな。
>>373 wxPython のほうは入っているけど、ものすごいトラフィック量がある。
だから、サブジェクトをみて一部のものしか目を通していない。
>372 Threadがらみキボン。この辺は良くわからないんですよね。 まあ、実際にはwxStringの方が重要ですね。幸せになる人も多そう。 #私はwxTextctrlをぼちぼちやっています……長い……
>>375 了解.とりあえずスレッドを一通り訳してから,wxString周りを攻めて行きます.
・・・なんかsourceforgeにうまく繋がらなくなってうぷろだに上げたけど,ちゃんと
コミットできたのでうぷろだのファイルは無視してください.(wx494.htm)
やほーい。おまいら、wx440.htm - Log functions - がうpられてましたよ! ナイス!kaba氏! そして、気付くのが遅くなってすみませぬ。 今晩、コミットしますでっす!
GUI部分はtkで組め。 以上
wxTextCtrlのEVT_KEY_UPだとつかめるんだけどさぁ、 EVT_KEY_DOWNでShift+TABの入力ってつかめないかなぁ?
(^^)
>>377 使ってもらえてうれしいです。
皆さんの訳文・HPを散々見させて頂いているんで、
少しぐらいはお返しせなならんかとうpしてみました。
意訳・超訳なのはごかんべん。
このとおりの亀なのでお手伝いできる事も
あんまりないのですが、またうpします。
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|オッパイが透けて見えるフラッシュは最高ですぅ〜!
\____ __________________
V
, -―- 、 /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
/了 l__〕 〈] /同人で、激エロSEXモノですよ!
7| K ノノノ ))))〉 ,、 |
http://pink.sakura.ne.jp/~erotan/ l」 |」(l| ( | | ||. !lm \_ _________
| |ゝリ. ~ lフ/リ lアノ V
| | /\∨/‐-/`'/
. l l | /ヽ/==|‐-- '
!リl/ // ヽ _ , '⌒ ⌒\
_〈 // \\\ ノ// ヘヘ、
. `つノl// ヽ // |||)、
//'へ゛ーノ 可愛いエッチな音声も聞けますよ〜!
< お絵描きBBSもありますよ!
383 :
デフォルトの名無しさん :03/08/02 20:14
☆ ☆ ☆
http://www.gals-cafe.com ☆ ☆ ☆
りさちゃんですっ☆みんな元気ぃ?夏だねっ!
あたしね、今アメリカにいるんだけど、、、えへっ(*>▽<*)
アナタに逢いたくて、こんなバイト始めちゃったヨ♪
りさに逢いに来てくれたら、7日間も会費無料サービスしちゃうし、
さらにさらに10分間も無料なんだよ! Σ(@o@)!!
アナタにだけの特別大っサービス♪絶対来てね!
二人っきりでたっくさん楽しいことしようよ♪まってるよ(^.^)/
☆ ☆ ☆
http://www.gals-cafe.com ☆ ☆ ☆
すばらしい働きぶりですな,皆さん. まじでがんがってほしい.応援してます. で,忙しいところ申し訳ないのですが,一つ質問がありまして. コントロール間のTabでのフォーカス移動って,どうやってやるんでしょ. wxTextCtrlでwxTE_PROCESS_TABを指定しても,うまくいかなかったもんで. 誰か教えて下さい.
wxArrayStringの訳をあげておきました. txtになっちゃったみたい. 遠慮なく添削してけっこうです.>皆様
なんとなく小技。 wxSMALL_FONTとかの、文字化け回避(するかも)。 samples/font/font.cppのMyApp::OnInit()の最初のほうに突っ込んでみたら、それなりに動きますた。 wxNativeFontInfo default_nfi,small_nfi,italic_nfi,swiss_nfi; default_nfi.FromString(wxNORMAL_FONT->GetNativeFontInfoDesc()); small_nfi = italic_nfi = swiss_nfi = default_nfi; small_nfi.SetPointSize(default_nfi.GetPointSize() - 2); italic_nfi.SetStyle(wxFONTSTYLE_ITALIC); swiss_nfi.SetFaceName(wxT("MS Pゴシック")); wxSMALL_FONT->SetNativeFontInfo(small_nfi); wxITALIC_FONT->SetNativeFontInfo(italic_nfi); wxSWISS_FONT->SetNativeFontInfo(swiss_nfi); SWISSのフェイスは、環境に合わせて適当に指定してください。 font family指定では化けるから、根本的な解決ではないけど・・・
>>385 試してみたんだけど上手くいかないね。なぜだ?
$WXWIN/samples/controls のlog出力に使われている奴。
550 m_text = new wxTextCtrl(this, -1, _T("This is the log window.\n"),
551 wxPoint(0, 250), wxSize(100, 50), wxTE_MULTILINE);
特殊なことはやっていないようなんだけど、
普通にタブでフォーカス移動が出来るんだよなぁ。
あと、wxTE_PROCESS_TAB で作った場合でも
CTRL-ENTER でフォーカスが移動する[wxTextCtrl|wx381.htm]ってあるんだけど、
これも上手く行っていない感じ。
あ、$WXWIN/samples/font もTABで遷移できる…。
>>386 >> Kaba氏
ダブル(σ・∀・)σゲッツ!!
ありがてー!
>>387 回避できたーよー。
この辺は解決したい問題ですね。
wxSystemSetting::GetFont()
あたりをいじるといいのかなぁ。
うp完了なり。
>>386 > txtになっちゃったみたい.
これは仕様なんです。
htm | html だと、広告が挿入されちゃうのがいやんなのと、
部落らとか、ウィルスを張られた場合の対策も含めて、
(IE だとあまり意味がなかったりするけど…)
拡張子を txt 変更するようにしてまふ。
説明がついてなくてスマソ。直しておきます。
> 遠慮なく添削してけっこうです.>皆様
添削しますた。
case (文字について話している場合)
誤:入れ物
正:大文字小文字
case sensitive で '大文字小文字を区別する' みたいな意味になりますです。
これ以外は問題ないッス。乙!
# 最近、機械翻訳なしでぺろっと英文が読めるようになりつつある自分にビックリ。
# 調子に乗って誤訳生産機になってなければいいけど…。
>>389 "case sensitive" == "大文字小文字を区別"
そういや,そうだった.
忘れてました.thx.
おおぅ!?またまたファイル(wxSockAddress)がうpられてますた。
>> sue 氏
サンクスコ!後ほどコミットしまふ。
>>391 タブオーダの指定はできなかったのか。
通りで探しても出てこない訳だ…。
んでも、TAB によるフォーカス制御は出来るはず。
wxWindow::SetFocusFromKbd があるぐらいだし…、
これも実は無保証なのかな。
Size overview (Sizeの概要) を揚げておきました. つかれた.
>>395 ・396
お疲れさんです。
凄い勢いでプロジェクトが進行していますね。
陰ながら応援させていただきます。
398 :
デフォルトの名無しさん :03/08/14 16:39
Dev-C++にwxWindowsを組み込み、新規プロジェクトをwxWindowsで作成すると、 「base.h」「base.cpp」というファイルが生成されます。 私は、DOSで表示させたときと全く同じ動作(数字を入力し、 計算結果を同じウィンドウに表示させる、など初歩的なもの)を GUIで実現させたいのですが、どこにその構文を挿入すればいいのでしょうか? どなたか教えていただけないでしょうか?
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
400ゲット
Dev-C++は使ったことないけれど……
(使う気もないし)
・どこかに
bool 〜〜::OnInit()
{
}
は無かった? そこが実行ブロックになります。
・上記のメンバ関数内はどのようになっている?
SetTopWindow( 〜〜 );
という行があるのならば、そのオブジェクトがメインウインドウになるので、
そのオブジェクトのクラスを追ってください。
もし無いのならば自分でウインドウを作成する必要があります。
http://wxwindowsjp.sourceforge.jp/download/wxWindowsBase.zip のサンプルプログラムを参考にウインドウをこしらえてください。
>>401 base.cppの中に下のような部分があります。
bool MainApp::OnInit()
{
MainFrame *win = new MainFrame("Frame", wxPoint (100, 100),
wxSize(450, 340));
win->Show(TRUE);
SetTopWindow(win);
return TRUE;
}
いろいろ試してみます。
どうもありがとうございます。
カレンダーサンプルの日付けがずれていませんか〜
405 :
デフォルトの名無しさん :03/08/19 04:05
いくらなんでも751では圧潰沈没しそう。緊急浮上。
Mingw32 options for Dev-C++ with wxWindows (hope minimize the EXE size) compiler: -D_X86_=1 -DWIN32 -D_WIN32 -D__WIN95__ -D__GNUWIN32__ -D__WIN32__ -DSTRICT -D__WXMSW__ -D__WINDOWS__ -fmessage-length=0 -fno-rtti -fno-exceptions -mthreads (only needed for multi-threads) linker: -lwxmsw -lstdc++ -lgcc -lodbc32 -lwsock32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -ladvapi32 -lopengl32 -lglu32 -lole32 -loleaut32 -luuid -s (will reduce exe file size a lot, but don't add it if in debugging)
>>407 のオプションはDevPack版のデフォルトなのかな?
それはともかく、
>>398 さん 見てたらbase.cppとbase.hの内容をコピペして欲しいです…
自己解決できましたスマソ
410 :
デフォルトの名無しさん :03/08/20 20:04
がんがれ
412 :
お気に入り集 ☆http://beauty.h.fc2.com/ :03/08/20 21:17
やばい忙しいなんてもんじゃない。 書き込みエラーまで出た。 超忙しい、超エラー、超やばい。
extra.zipを解凍して出てくるbin、shareフォルダは mingwをインストールしたディレクトリ直下と mingw32フォルダ内のどちらにコピーするのですか? d:/mingw/bin d:/mingw/mingw32/bin
メルマガの作者は何を目指してるのだろうか。 ミス多いし文章読みにくい。。。鬱だ。 Javaに乗り換えよう。
>>415 Javaに乗り換えられるなら、それが良いかも
というか、メルマガなんてなくても平気じゃない?
おつかるー!
420 :
デフォルトの名無しさん :03/09/02 01:28
wxTreeCtrl を訳してみました。 いちばん、自信のないところ: EVT_TREE_GET_INFO(id, func) アプリケーションから情報を要求する。? EVT_TREE_SET_INFO(id, func) 情報が与えられた。? それと、wxTreeCtrl::Unselect と wxTreeCtrl::UnselectAll の違いも文面から 読み取れていません。 コードで試していないのがいかんのですが。
> 420 おつかれさまです。マージしました。遅れてスマソ > EVT_TREE_GET_INFO(id, func) > アプリケーションから情報を要求する。? > EVT_TREE_SET_INFO(id, func) > 情報が与えられた。? むむむ、情報無さすぎですね。コードをHackしないとわからないか…… 多分、Itemに情報をsetする/Itemから情報をgetするときに発生する イベントだと思うけど……
>>328 亀レスだけど、手元の環境(共有DLL・非デバッグ)でやると178,290byteになったよ
デバッグ版で作ったのかな?
非デバッグだと凄く小さい…デバッグ版だとwxmsw241.dllが30MB以上あったが、リリース版では↓のようになった $ ls -lh /usr/local/lib/ 6.3M libwx_msw-2.4.dll 6.3M libwx_msw-2.4.dll.0 6.3M wxmsw241.dll 9.6M wxmsw241.dll.a
>>422 すいません.-DNDEBUGやってませんでした.簡単に実験しただけなので,
オプションをもっと弄ればさらに小さく出来るかもしれません.
最近卒研とプロコンと夏休みの宿題(笑)が忙しいので,翻訳に手が回りません.
しばらく陰で応援しています.
425 :
デフォルトの名無しさん :03/09/09 22:06
がんばれあげ
おつ
>>107 です。
4ヶ月越しですが、ようやく今日から始めました。
とりあえずMinimalに感動しました。
皆様の翻訳大変ありがたいです。がんばってください。
C++BuilderXに採用…?
>>429 採用らしいね。
ついにwxWindowsもメジャー化?
マジ? ソースキボンヌ
wxWindowsでRADな環境になる…のかな?
RADいいねぇ。 でも日本語版はいつになる事やら。
>でも日本語版はいつになる事やら。 へ? po書くだけじゃないの?
C++BuilderX、ビクーリしますた。ワショーイ、ワショーイ。
http://www.wxwindows.org/borland01.htm で気になる点をつらつら書いてみる 。
抜粋:
Rest assured that Borland is adapting itself to wxWindows' open source nature,
残りは、ボーランドがwxWindowsのオープンソースに自然に順応していると保証しました。
オープンソースな状態を保ったまま、ボーランドがwxWindowsを採用しサポートもしてくれるってことかな?
Q&Aから一部抜粋:
Q. How is Borland helping the wxWindows project?
Q. ボーランドはどういった貢献をwxWindowsプロジェクトにするんだい?
A. Borland is providing funding for several aspects, including extended
RTTI, the new build system, documentation and some reengineering tasks.
A. Borlandは、拡張RTTI、新しいビルド・システム、ドキュメンテーションといくらか
の再設計している作業を含むいくつかの面のために、資金提供を提供しています。
文書化に資金提供か…。ライセンス上OKとはいえ勝手に翻訳してて大丈夫かな?
なにかしら、足並みをそろえる必要があったり無かったり?
日本語版には翻訳ドキュメントも付属するのかな?
だとしたら、将来的に翻訳プロジェクトの続行を如何するべきだろう?
などと斜め読みながら思ってみた。ゆっくり読まねばなぁ。
祭りですか?
>>439 Rest assured that Borland is adapting itself to wxWindows' open source nature, and not the other way around
は
ボーランドはwxWindowsをそのオープンソースの性格に則って採用し、
それに反対するようなことはないと保障したから安心しる、
って感じかと。
442 :
デフォルトの名無しさん :03/09/18 22:40
age
ネットワークが死んで隔離されている間に嬉しいニュースが > だとしたら、将来的に翻訳プロジェクトの続行を如何するべきだろう? ◯Borlandが自由に使用可能な形で翻訳文を提供 ->ありがとう、Borland!! オレたちゃ先 (Howto, Tipsとかの整理) にいくぜ! ◯C++BuilderXに閉じたライセンスでの配布のとき ->残念。BuilderXに閉じていると不便だから、自由に使えるように地道に 翻訳するよ。 つう感じですかね。 まあ、のんびりやりましょう。
どちらにしろ構造を先に知っていれば(゚д゚)ウマーかも 漏れはGUIビルダとかを期待かな>BuilderX マターリマターリ
すいません。イベントに関して質問があります。 環境はwxWindows-2.4.1 on Gtk+2です。 ウィンドウを直接フレームに張り付けた場合にサイズイベントが呼ばれるんですが、 パネルに格納したものをフレームに張り付けると呼ばれなくなってしまいます。 大きな勘違いをしていると思うのですが、どうすればよいのかご教授願います。 次レスにできるだけ短くしたソースを貼ります。 public wxPanelにしても同じでした。 また、イベントを動的に結合(wxEvtHandler#Connect)しても同じでした。
#include <wx/wx.h> struct MyWindow : public wxPanel { MyWindow(wxWindow* parent) {wxWindow::Create(parent,wxID_ANY,wxDefaultPosition,wxDefaultSize,0,wxT(""));} void OnSize(wxSizeEvent& event) {puts("MyWindow::OnSize()");} DECLARE_EVENT_TABLE(); }; BEGIN_EVENT_TABLE(MyWindow, wxWindow) EVT_SIZE(MyWindow::OnSize) END_EVENT_TABLE() class MyApp : public wxApp { virtual bool OnInit() { wxFrame* frame = new wxFrame(0, wxID_ANY, wxT("TITLE")); //* ("/*" or "//*") MyWindow* window = new MyWindow(frame); /*/ wxPanel* panel = new wxPanel(frame); MyWindow* window = new MyWindow(panel); panel->Show(TRUE); //*/ frame->Show(TRUE); return TRUE; } }; IMPLEMENT_APP(MyApp);
追記です。 一応解決法としては、MyFrame : public wxFrameを作成してMyWindow* windowをメンバとして持っておいて、 MyFrame#OnSize内で this->window->GetEventHander()->ProcessEvent(event)をする方法がありますが、大変煩わしいです。 例えばwxNotebookに追加したい時も必ずMyNotebook : public wxNotebookを作らないといけないことになってしまいます。
>446 VC++.net/MS-WindowsではwxEvtHandler::ConnectでOKですた。 #ソースをハックしないと何指定すればいいかわからないのは難点ですな class MyApp : public wxApp { virtual bool OnInit() { wxFrame* frame = new wxFrame(0, wxID_ANY, wxT("TITLE")); wxPanel* panel = new wxPanel(frame); MyWindow* window = new MyWindow(panel); panel->Connect( wxID_ANY, wxEVT_SIZE, (wxObjectEventFunction)(wxEventFunction)(wxCommandEventFunction) MyWindow::OnSize); frame->Show(TRUE); return TRUE; } };
>>449 素早いお返事ありがとうございます。
しかしその方法ではMyWindow::OnSize内でthisは使えませんよね。
…というかそもそもイベントハンドラ内でthisは使っちゃいけないんでしょうか。
だとしたら俺すごいあほですね。。。
すいません。どうやらwxPanel自体がそういう仕様のようです。 つまりwxPanelに載せたオブジェクトはwxFrameに載せた場合と異なり、 明示的に指示しない限りリサイズされないようです。 MyWindowの代わりにwxButtonで確めました。 結局MyWindowの使用者は、wxPanelに載せる場合wxPanel#OnSizeから ProcessEventでMyWindow#OnSizeを呼び出してあげるのが正攻法ということでしょうか。 自己レスですが、 >イベントハンドラ内でthisは使っちゃいけないんでしょうか。 いいみたいです。でもConnectで異なるオブジェクトから接続すると thisが変わってしまいますのでやらない方が無難です。 代わりにwxWindow#PushEventHandlerが使えるような気がしたのですが OnGtkだと正しいthisで呼び出された直後にSearchEventTableの中でセグってしまいます。 (サンプルではPushEventHandlerは同一クラス内でしか使用してない) こういう使い方をするものじゃないかもしれません。
>450 >しかしその方法ではMyWindow::OnSize内でthisは使えませんよね。 はっ、そういやオブジェクト渡していない…… ->*ではないみたいですね。 マニュアルに書いてある通り、あくまで"静的イベントテーブルの使用に代わるもの" か……ほかのオブジェクトへのコールバックには使えないですね。 m_parent->Connect(wxID_ANY, wxID_ANY, wxEVT_SIZE, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) &MyWindow::OnSize, window); } として wxEvent::m_callbackUserData 越しのアクセスである程度うまくいくけど…… panelを削除するときに、先に削除したwindowにアクセスしにいってエラーになるなぁ どうしたもんだか……
453 :
デフォルトの名無しさん :03/09/22 10:12
MicroWindowsとwxWindowsってどういう関係でしたっけ? 自分の記憶では、DOSでMicroWindowsが動作して、 wxWindowsはMicroWindowsがあれば動作できましたっけ? 知りたいのは、DOSでwxWindowsを動作させるには、だったりして。
2.4.2がリリースされましたな。 バグとりが中心のようです。
456 :
デフォルトの名無しさん :03/09/23 14:09
>>454 wxMicroWindowsでDOS動作なんだー。
まだツカテナイケド便利。
起動時に既にそのアプリケーションが起動しているかどうか調べたいんですが どうすればいいのでしょう?ポインタだけでもいいです。 あと、もしそれができるのであれば、WindowsのPostMessageのように その既に開いているウィンドウに通知したいのです。宜しくお願いします。
質問ばっかりでアレなのでちょっとしたTips。 Windows版の時にwxWindow#GetHandle()で返ってくるのは描画領域を持つHWNDですが、 GTK+版では描画領域(GdkWindow)を持たないGdkScrolledWindowが返ってきます。(GetHandle(){return m_widget}) GdkWindowを持っているのはwxWindow#m_wxwindow(GTK_PIZZA型 win_gtk.h)なので ネイティブなウィンドウに描画する場合はその部分だけ#ifで分けねばなりません。 ちなみにwxWindow#m_wxwindowはwxWindow#m_widgetの子供になっているので gtk_container_children(GTK_CONTAINER(wxWindow#m_widget))->data == wxWindow#m_wxwindow となります。 ま、あまり使う人はいなさそうですが結構苦労したのでメモっときます。
>>460 ぐはっ!wxSingleInstanceCheckerってそのまんまの名前ですね。ありがとうございます。
日本語訳あるかどうか見に行こうとしたらメンテナンス中だって言われてしまった。
日本語プロジェクトのお話スマソ。
>>460 > 結局日本語化はBorlandがやってくれるのかな?プロコンまで3週間切ったけど,どうせ
どうやら、C++BuilderXはC++Builder6の後継開発環境臭いですね。
Kylix的位置付けなら英語マニュアルしかないのも考えられるけど、
日本語のマニュアルが今まで付属していた既存パッケージの後継であれば、
当然のように日本語圏用のパッケージには日本語マニュアルが付属する可能性は高いッス。
むむむ。
しばし、静観するしかないですな。
時期を見てボーランドに問い合わせでもしてみるべ。
wx340.html 翻訳してもいいかしら?
>>460 >漏れが翻訳してもBorlandみたいな企業が使ってくれるようなドキュメントにならないと
>思うのだが.
そのあきらめのよさは一体・・・
せっかくなんだからBorlandにコンタクトとってみたら?
多分外注に一括して翻訳依頼出すんだろうから
逆に翻訳予定のないところを聞いてそこから手をつけるとか。
某はwxWindowsのドキュメントのみをフリーで公開する気があるんだろうか。 personalとは別にドキュメントだけで。
それはない。
ヤフー!
SFメンテ中でまだ読めませんが、
wxSingleInstanceChecker の翻訳ageますた!
>>463 そうですね、早めに問い合わせしてはっきりさせた方が、
無駄がなくてよさげですね。
>>464-465 > Rest assured that Borland is adapting itself to wxWindows' open source nature,
がどこまでを意味しているかですね、むむむむ。
ボーランドへの問い合わせのタイミングは、 日本法人からのC++BuilderXかwxWindowsに関する正式発表がでたあたりかな。 今のところ、それらの名前は一切出てないみたいですから、 今問い合わせしてもフライングかと思われ。
MSYSにwx2.4.2をconfigure;make;make installして正常終了、wx-config等のコマンドも通るのに | hoge.cpp:4: wx/wxprec.h: No such file or directory | hoge.cpp:9: wx/wx.h: No such file or directory とincludeファイルが見つからないというようなエラーでコンパイル止まるのはどういうわけなんでしょう… 独自にパスを通さなきゃいけないんですかね
まずは大人しくreadmeにしたがってみる事にします to compile with optimizations: > cd c:\wx\src\msw > make -f makefile.g95 clean > make -f makefile.g95 FINAL=1 > cd c:\wx\samples\minimal > make -f makefile.g95 cleanall > make -f makefile.g95 FINAL=1
>>468 いちおう確認.バッククォートって知ってる?
wx-configはバッククォートでくくってgccにオプションを渡して使う.
あと,INCLUDEパスには関係ない話だからそのコンパイルエラーには関係ないけど,
gccがリンクする順序の関係で,wx-configのオプションはソースファイルより後ろに
置かないといけない.
>470 レスサンクス とりあえずunix系の知識は軽くあるんで``でのサブシェル実行(って言っていいんだよな・・)は分かってる。 gccのバージョンを差し替えたり色々環境をいじり壊してたんでこの機にMinGW MSYS wx全部再インストールすることにした。 今make中です
>>471 もし、再インストールしてもエラーが出てしまうようなら、
MSYS 環境は良くわからないが、
試しに
echo `wx-config --cppflags`
して、インクルードパスがどうなっているか見てみるといいかも。
おかしければ、wx-config はシェルスクリプトなので、
直接修正しちゃう手もアリかもしれないッス。
吐き出されたlibとincludeをみんぐーのフォルダにコピーしたら問題無しでした。バカみたい(ノД`) スレ汚しスマソ
それをしないためのwx-configなのだが・・・
>>473 環境変数WXWINをC:\wxWindowsとかにしてないかい?
みんぐーは"\"でなく"/"にしないと-Iオプションのいみないかもよ
>>476 それはconfigureのオプションだったと思います.
confiugre --helpで,prologなんちゃらをEnableにするオプションが無いかどうか
調べてみてください.
wxXmlResourceでxrcファイルに日本語が使えないんですけどどうすればいいんですかね? UTF-8で書くと化けるし、Shift_JISやEUC-JPだと Cannot convert from encoding 'EUC-JP'! とかwxLogErrorで言われちゃいます。 ちゃんとXMLファイルのencoding指定とファイルの文字コードは合ってるんだけど。 環境はWindows2000+wxWindows2.4.1です。 Gtk+でも確かできなかったような覚えがあります。 ・・・って今思ったんですけどUNICODEビルドすればUTF-8でいけるんですかね。 ちょっと試してみますけど明日になっちゃうので、どなたか既に情報をもっていらっしゃったらお願いします。
>>478 XRCはXMLパーザが原因で日本語通らなかったはず
Unicodeビルドしても変わらないんじゃないかな
ただwxXmlResourceはwxLocaleを設定してやれば
getopt風のメッセージ変換してくれるから
poファイル用意してやれば一応日本語は出せるよ
(Windowsでしか確認していないけどね)
中途半端な情報スマソ
>>479 > getopt風のメッセージ変換してくれるから
> poファイル用意してやれば一応日本語は出せるよ
それは gettext
482 :
灰 ◆v/.u/aNe9w :03/09/26 00:32
商業開発不可版のドキュメントでひたすら勉強してあとは本家をゲフゲフ
製品情報からの引用
> C++BuilderXは、ボーランドが今まで提供してきたGUIを伴うアプリケーションに主軸
> をおいた「C++Builder」の直接的な後継製品ではありません。ビジュアルデザイナや
> ウィザードなど、従来のC++Builderで提供されてきたような機能は含まれていませ
> ん。
RADがないのか。残念。
んで、なんだかKylixと近い扱いみたいですね。
>>483 日本語マニュアルつかない予感。
>日本語マニュアルつかない予感。 翻訳し放題でよかったじゃん(藁 とりあえずGUI抜きのgccの統合開発環境として使い物になればいいや。 ってスレ違いだけど。
>>485 んじゃ、今までより機能が落ちるデザイナが付属する感じなのかな?
>>486 > 翻訳し放題でよかったじゃん(藁
蓋が開けられるまで確かなことはいえないですが、
嬉しいような悲しいような…。
本音は日本語マニュアルが付属する方がうれしいなぁ。
正直、自分の翻訳に自信ないしー。
>>479 レスどうもありがとう。
> XRCはXMLパーザが原因で日本語通らなかったはず
> Unicodeビルドしても変わらないんじゃないかな
そうですか。残念です。
今日初めて気づいたんですが、Gtk版ってUNICODEビルドがないんですね。
いまいちUNICODEビルドが何なのか分からないんですが、どなたか解説願えませんか?
> ただwxXmlResourceはwxLocaleを設定してやれば
> getopt風のメッセージ変換してくれるから
> poファイル用意してやれば一応日本語は出せるよ
> (Windowsでしか確認していないけどね)
今はこれでやってます。
ただいろいろと問題や悩みがあって、
・_Fileに対応するmsgstrが&Fileで直観的ではないし、xgettextで取り出すとsedをかまさなきゃいけない
・下の二つのどちらにしようかという悩み
1.xrcの方を_Fileとしてja.poでファイル(&F)とする
2.xrcの方をFileとしてen.poで&File、ja.poでファイル(&F)とする
poを使うとメッセージの翻訳にインターフェイス(キーバインド)の定義も含まれてしまうから、
キーバインドを変えるためだけにユーザがpoを編集してmsgfmtしなければいけないのが大きな悩みです。
それから、多言語での整合性を取るためにxrcの方で指定するラベルやツールチップ文字列等に
決まった文字列を使わなければならないという悩みもあります。
それならいっそのことインターフェイスの定義に翻訳も含めてしまうのがいいのではないかと。
(というか、翻訳ってインターフェイスの一部ですよね)
なので時間ができればxrcを多言語対応に書き換えようかと思っています。
このレスちょっと日本語おかしいですが勘弁して下さい。宿酔いなので
複数フレームが開いている時に、一度に全て閉じるには普通どうするのでしょうか? 例えばあるフレームで「ファイル→終了」を選んだ時です。 wxExitは緊急の時だけにしろって書いてありますし、 wxWindow#FindWindow*はidやnameが分からないので使えませんし、 wxApp#GetTopWindowは複数回呼んでも同じウィンドウを戻してくるし。。 教えてください えろい人。
えろい人と呼ばれて答えないわけにはいかないですね。 > 例えばあるフレームで「ファイル→終了」を選んだ時です。 アプリを終了させるのなら、wxApp::GetTopWindowでメインウインドウの ポインタを入手してwxWindow::Closeすればいいと思う。 # wxWindow::Destroyかな? wxApp, DECLARE_APP()も参考のこと。
>>490 レスありがとうございます。僕も早くえろい人になりたいです。
説明不足で申し訳ありませんが、複数フレームとは各々独立しているものでして、
トップウィンドウが閉じられても他のフレームは存在しつづけるのです。
つまり、全てのフレームの親はNULLなのです。
複数インスタンスを起動すればいいだけの話なんですが、
起動時に重い処理を行うためにそれを避けています。
すいません。取り乱しました。。。えっと、wxAppに bool SendIdleEvents() すべてのトップレベルウィンドウにアイドルイベントを送ります。 というのを見つけまして、ソースを見たところwxTopLevelWindowsに対して処理をしていましたので、 case wxID_EXIT:{ wxWindowList::Node* node = wxTopLevelWindows.GetFirst(); while (node) { wxWindow* win = node->GetData(); win->Close(TRUE); node = node->GetNext(); } break; } としたところ、うまくいきました。お騒がせ致しました。
おっと失礼……特殊なケースですな。 グローバル変数の wxTopLevelWindows を利用するという手もありそうですが、 ドキュメント化されていない変数を利用するのもまずいかな? # どっかでドキュメント化されていましたっけ? 私だったら、素直にwxApp(の派生クラス)でNULL親のウインドウリストを 持つようにしますかね……
入れ違いですな……wxTopLevelWindows を利用しましたか。 このあたりのグローバル変数もドキュメント化してくれると助かるのですけどね # 仕様Fixという意味からも
498 :
デフォルトの名無しさん :03/09/29 20:54
最近wxWindowsの勉強を始めたのですが、サンプルを見ると、 どれもボタンとかメニューを作るたびにIDを割り当てて、 そのIDをベースにコールバックを登録してますよね? みなさん、そのスタイルでプログラムされてるんですか? wxID_ANYでまかせて、GetIdを使うやり方は、将来何かまず いことがおきるでしょうか? ついでにいうと、せっかくオブジェクト指向なのに、なんで IDなんていう内部情報を表に見せるようなAPIになってるん でしょうね。
> 498 >wxID_ANYでまかせて、GetIdを使うやり方は、将来何かまず 具体的にはどんな感じ? # ハンドラ内でif判定? マクロとか使用せずに登録したいのなら、EvtHandler::Connectを使うのが スマートだけど……どのみちIDを使用しますな。 > IDなんていう内部情報を表に見せるようなAPIになってるん IDをメッセージの一種と考えているんでしょうね。 メンバ関数をコールバックするためにオブジェクトそのものをやりとりするよりも 効率的と判断したのですかね?
>>498 >なんでIDなんていう内部情報を表に見せるようなAPIになってるん
OnFileMenu(wxCommandFileMenuEvent) {}
OnEditMenu(wxCommandEditMenuEvent) {}
OnExitMenu(wxCommandExitMenuEvent) {}
OnOpenMenu(wxCommandOpenMenuEvent) {}
俺はこんなのやりたくないぞ。
OnCommand(wxCommandEvent) {switch (event.GetId())}
の方が素直でいい。
>>500 やりたくないって最近のGUIフレームワークはみんなそうなんだが。
拡張無しのC++だと発生したイベントとイベントハンドラOnFileMenuの呼び出しを
結びつけるのが難しいから(まさかvirtualにもできないし)wxWではやってないというだけで。
>>501 ほんとにメニューが増えるたびにクラス作るの?
まじでやりたくないな。。とりあえずSwingは違ったけど。
その最近のGUIフレームワークって何てやつ?
>>502 >みんなそうなんだが。
>>500 の例は少し違ったな。クラスをボコボコ作るわけじゃない。
↓な感じ。
class Form1
{
OnFileMenu(wxCommandMenuEvent) {}
OnEditMenu(wxCommandMenuEvent) {}
OnExitMenu(wxCommandMenuEvent) {}
OnOpenMenu(wxCommandMenuEvent) {}
}
(´-`).。oO(なんで「MFCに似てるな」で片づけられないんだろう…)
>>503 それって
EVT_COMMAND(wxID_FILE, wxCommandMenuEvent, OnFileMenu)
EVT_COMMAND(wxID_EDIT, wxCommandMenuEvent, OnEditMenu)
EVT_COMMAND(wxID_EXIT, wxCommandMenuEvent, OnExitMenu)
EVT_COMMAND(wxID_OPEN, wxCommandMenuEvent, OnOpenMenu)
と何が違うん?
あ、違うか。そうしないのは何故かってことか。なんでだろ? 関数増えまくるのがめんどくさいからかな。 ヘッダにも書かないかんし。まあC++の宿命っつーか。
507 :
デフォルトの名無しさん :03/09/30 06:45
WideStudio のドキュドキューンさになんとも馴染めなかったので、 これはどうかと wxWindows を見てみたが、 設計古すぎ もうだめぽ
>>507 来年また覗きにおいで
http://www.wxwindows.org/roadmap.htm Version 3.0.0 Stable
Release 15/12/2003
This stable release will have STL compatibility for compilers that support
templates fully. For example the wxString class will derive from
std::basic_string<>.
よーするにdelegateのないC++は糞だしその上に構築されたライブラリも糞ってこった。
>>509 delegate自分で書けねーのかよ(激藁
>>508 おぉ
# gtkmm から早く抜け出したいので期待age.
ドキュメントかなりvirtualの間違いがあるんですけど こういうのってどうしたらいいんでしょうかね? 報告した方がいいんですか? virtualってドキュメントに書いてあったからオーバーライドしてはまった人より。
>>512 そりゃもちろん報告した方がいいでしょ。
どなたかwxDynamicLibrary(wxPluginLibrary)をうまく使えている方いませんか?
まだ突き詰めて実験してないんですけど、現象としては
class MyWindow : public wxWindow {
DECLARE_DYNAMIC_CLASS(MyWindow);
}
IMPLEMENT_DYNAMIC_CLASS(MyWindow, wxWindow);
というクラスをDLLにしてあり、アプリケーションから
wxDynamicLoaderやwxPluginManagerを使って読み込んでインスタンスを生成しているんですが
instance->GetBaseName1() == wxT("wxWindow")
なのに
instance->GetBaseClass() == NULL
という良く分からない状態になっています。
ドキュメントにはstrlenのサンプルがありますが、wxWindowsの型システムを使った
オブジェクトの生成方法のサンプルがなかなか見つかりません。
一応
http://lists.wxwindows.org/cgi-bin/ezmlm-cgi/8/26949 も見たんですけど何だか良く分からん(;´Д`)
何か情報があればお願いします(英語でも何かのソースでもいいです)
すいません。めちゃくちゃ間違えました instance->GetClassInfo()->GetBaseClassName1() == wxT("wxWindow") なのに instance->GetClassInfo()->GetBaseClass1() == NULL です。
>>514 おお、そんなものがあるのか。
漏れも試してみます。
イベントを兄弟ウィンドウに伝播させるには、 1.子ウィンドウAがイベントを親ウィンドウに投げて、 2.親ウィンドウが受け取ったイベントを子ウィンドウBへ投げる としているのですが、これだと親ウィンドウが全てのイベントを 管理しなきゃいけないんですがこんなもんなんですか? GUIアプリ作ったことないんでこれが普通なのかどうかよく分かりません。
1.子ウィンドウAが親ウィンドウのハンドルを取得する 2.親ウィンドウから子ウィンドウA,B,C,D,...のリストを取得する 3.子ウィンドウリストから必要なウィンドウをピックアップしてイベントを投げる でも,動作すると思いますよ.
>>518 レスありがとうございます。
XRCを使っているという前提で聞いてもらいたいんですが、
「必要なウィンドウをピックアップ」とありますが、ユーザが勝手に作ったクラスの場合は
必要かどうか分からないので、結局どこかで while を使って子ウィンドウ全てに
イベントを投げる必要があるということですね。
そうすると、孫ウィンドウに送る場合はどうするのでしょう?
途中にwxPanelやwxSplitterWindowなどがはさまってしまうとそれ以上イベントが飛ばないので、
1.まず最初にトップウィンドウにイベントを投げて、
2.トップウィンドウの全ての子孫ウィンドウを再帰的に検索して
3.それぞれのウィンドウのProcessEventを呼び出す
ということをしなければならないのでしょうか。
「しなければならない」のならするのは全然平気なのですが、ちょっと不安になってしまいまして。
520 :
デフォルトの名無しさん :03/10/10 19:20
C++BuilderXはどうだったんだろう。
>>520 10月半ばにPersonal版がDL可能になる・・・筈
へぇ
英語版のPersonal入れてみたけどwxWindowsは入ってなかったしRADも見当たらなかったぞ
>>523 まぢ?
とりあえずプロコンが終わったら入れてみよう.
そういえばBitTorrentもwxWindows/Pythonなんだよね。やけに配布パッケージ大きいと思ったらライブラリが9割以上食ってた
> 525 DLLだと全部入りになるからデカいよね。 C++でstatic linkすると随分小さいけど……Pythonじゃ無理か……
>>514-515 できましたー。
これが正しい方法なのかどうか分かりませんが、
クラス名以外の情報が見えない状態でインスタンスの生成に成功しました。
以下にTipsとして示します。ちょっと長いです。
環境はWindows2000、wxWindows2.4.1です。今週中にLinuxでもやってみます。
1.DLLを用意する。
ヘッダの中身はこんな感じです。キモはDECLARE_USER_EXPORTED_PLUGGABLE_CLASSです。
これによってwxPluginLibraryにwxClassInfoのハッシュマップが宣言されます。
#ifndef MYFRAME_H
#define MYFRAME_H
#include <wx/wx.h>
class MyFrame : public wxFrame {
DECLARE_USER_EXPORTED_PLUGGABLE_CLASS(MyFrame, __declspec(dllexport));
};
#endif
で、"__declspen(dllexport)"はWXDLLEXPORTのように、
DLL側では__declspen(dllexport)、アプリケーション側では__declspen(dllimport)とならなければなりません。
wx/defs.hを見て適宜プリプロセッサで場合分けしてください。
今回はアプリケーション側はMyFrame.hをincludeしないので、このようにしました。
(続き)MyFrameはexportしなくても良いみたいです。(ひょっとすると必要なのかもしれませんが) 1.DLLを用意する(2) 今度は実装部です。IMPLEMENT_USER_EXPORTED_PLUGGABLE_CLASSを使えばいいのですが、 wxWindows2.4.1のwx/object.hの_IMPLEMENT_DL_SENTINELにバグがあり、コンパイルが通りませんので以下のようにします。 ------------------------------- #include <wx/dynload.h> #include "MyFrame.h" #undef _IMPLEMENT_DL_SENTINEL #define _IMPLEMENT_DL_SENTINEL(name) \ const wxString name::name##PluginSentinel::sm_className(#name); \ name::name##PluginSentinel::name##PluginSentinel() { \ wxPluginLibrary *e = (wxPluginLibrary*) wxPluginLibrary::ms_classes->operator[](#name); \ if( e != 0 ) { e->RefObj(); } \ } \ name::name##PluginSentinel::~name##PluginSentinel() { \ wxPluginLibrary *e = (wxPluginLibrary*) wxPluginLibrary::ms_classes->operator[](#name); \ if( e != 0 ) { e->UnrefObj(); } \ } IMPLEMENT_USER_EXPORTED_PLUGGABLE_CLASS(MyFrame, wxFrame); ------------------------------- ms_classes.Get(#name) となっているところを ms_classes->operator[](#name) と直します。 で、これをDLLとしてコンパイルします。
(続き)ありゃ、ずれてしまった・・・スマン。
2.DLLを読み込んでインスタンスを生成する
wxPluginManagerを使ってDLLを読み込み、wxClassInfoを全走査して目的のクラスを見つけます。
これは
http://lists.wxwindows.org/cgi-bin/ezmlm-cgi/8/26949 とほとんど同じです。
---------------------------------
#include <wx/wx.h>
#include <wx/dynload.h>
class MyApp : public wxApp {virtual bool OnInit();}; IMPLEMENT_APP(MyApp)
bool MyApp::OnInit() {
wxPluginLibrary* lib = wxPluginManager::LoadLibrary("./lib/Debug/lib.dll");
wxNode *node;
wxClassInfo* classInfo;
wxClassInfo::sm_classTable->BeginFind();
node = wxClassInfo::sm_classTable->Next();
while (node) {
classInfo = (wxClassInfo *)node->Data();
if (wxString(classInfo->GetClassName()) == wxT("MyFrame")) {
wxLogTrace(classInfo->GetClassName());
wxLogTrace(classInfo->GetBaseClass1()->GetClassName());
wxFrame* frame = (wxFrame*)classInfo->CreateObject();
frame->Create(NULL, -1, wxT(wxString("class ") + classInfo->GetClassName() + wxString(" : public ") + classInfo->GetBaseClassName1()));
frame->Show(TRUE);
return TRUE;
}
node = wxClassInfo::sm_classTable->Next();
}
return FALSE;
}
---------------------------------
以上です。
あの・・・追記です。
DECLARE_USER_EXPORTED_PLUGGABLE_CLASS(MyFrame, __declspec(dllexport));
IMPLEMENT_USER_EXPORTED_PLUGGABLE_CLASS(MyFrame, wxFrame);
の代わりに
DECLARE_DYNAMIC_CLASS(MyFrame);
IMPLEMENT_DYNAMIC_CLASS(MyFrame, wxFrame);
でもできちゃいました。。。(じゃあPLUGGABLEは何のためにある??)
>>514-515 の原因は分からずじまいです。
>>527-528 の無駄レスごめん。
wxWindows Personal 英語版をインストールしてみました. 確かにwxWindowsの影も形もありません・・・ハァ. デモでは新規作成にwxWindowsのタブがあったのに,こっちにはありません. wxWindowsはどういう形で使えるようになるのかすら判りません.とりあえず 10月半ばのC++BuilderXではwxWindowsは使えなさそう.
>>523 CBXのどこにRADだと書いてあるのかと小1時間・・・
>>531 某得意のPro版以上とか?
>>532 http://www.borland.com/cbuilderx/tour/C%2B%2BBuilderX%20Turbo%20Demo.htm このデモの最後の方ではwxWindowsアプリをRADっぽく作る様子があるんだけど・・・
少なくともPersonal版には無いな.ラインナップ間の機能を比較する表にwxWindowsの
項目が無いから,wxWindowsサポートの有無が差別機能だとも思えない.
ソッコーでアンインスコして,MinGW Developer Studioをインストールしてみた.
こっちはなかなか良い.何よりめんどくさいwxWindowsのインストールが簡単にできる
ことだけでも十分うれしい.IDE自体もwxWindows製なので動作が軽い.
他のIDEが使いたいなら,インストールした後wxWindows関連のファイルだけ取り
出してアンインストールするという使い方もアリかも.
>>533 そのデモ見てなかった。すまん。
ただDelphiでも比較表にVCLソースの有無とか書いてないし。
プロコンも終わったし,ドキュメント書いてからソースを某雑誌の人に 提出したら翻訳に再参戦しようかと思います. で,結局C++BuilderXのwxWindows採用の噂以降も翻訳作業は続いて いるんでしょうか? メインの開発環境をノートPCに移行してから,まだCVS入れてないんです.
>>514-515 と >>527-
>>530 は全て誤りでした。
間違った情報のまま残しておくとTipsに載った場合にまずいので修正しておきます。
wxPluginLibraryが何をするのかというと、通常の::LoadLibrary,dlopenの動作に加えて、
「wxModuleから派生しているクラスをwxWindowsの型システムにインポートする」
という機能が付加されているという、この一点だけです。
wxPluginManager::LoadLibrary("ライブラリ");を実行するだけでpublic wxModuleなクラスはちゃんと使えます。
public wxModule"以外の"クラスは型システムにインポートされませんので工夫して書く必要があります。
ところでWindowsでなかなかうまくいかなったのですが、その原因は wxClassInfo::sm_first でした。
こいつはプロセス中で唯一であることを保証しなければいけません。
つまりDLLを使うことが必須となります。(スタティックリンクでうまくいくようなアイデアがあれば教えてください)
Linuxでうまくいっていたのは、wxGTK.rpmで入れているため元々共有ライブラリになっていたからでした。
これについては
http://lists.wxwindows.org/cgi-bin/ezmlm-cgi/8/26949 の P.S.の部分に
>you need to build your app and dll using WXUSINGDLL=1, otherwise you'll have no end of trouble.
とちゃんと書いてありました。(でもこれP.S.なんてもんじゃじゃないだろーと思った)
>>536 訂正が間違ってるというとんでもないことをしてしまいました。(;´Д`)
> wxPluginManager::LoadLibrary("ライブラリ");を実行するだけでpublic wxModuleなクラスはちゃんと使えます。
> public wxModule"以外の"クラスは型システムにインポートされませんので工夫して書く必要があります。
そんなことないです。wxClassInfoを生成(IMPLEMENT_DYNAMIC_CLASS)すると自動的にインポートされます。
wxModuleを継承したクラスは、メモリにマップ・アンマップされる度にOnInit,OnExitが呼ばれ、
そうじゃないクラスは特に何も起こらない、です。モウカキマセンヽ(`Д´)ノゴメンナサイ
昨日、2.4.2落としたら src/makefile.b32 が付いていないみたいなんですけど、 どうやってlib作ったらいいですか?
> 537 お疲れです。 >モウカキマセンヽ(`Д´)ノゴメンナサイ そんなこと言わずに書き込んでくだされ。 Hackについてけないことが多いですが…… > 538 $(WXWIN)/docs/(システムごとのフォルダ)/install.txt を見るヨロシ。 コンパイラごとのmakefileを使うか、configureを使うみたいですな。
bcc使ってないから知らないけど,configureは使えないんだよね.bccでは makefileがないとビルドできないということになると思うけど,使用するmakefileが 変わったのかな? MinGW Developer StudioのwxWindows入りバージョンを使ってるから,マトモな アドバイスが出来なくてスマソ.
>>539 結局はスタティックリンクするとwxClassInfoのメンバ変数が複数生成されてしまうという
こちら側のしょうもないミスだったのですが、ろくに確認せずに書いてしまって申し訳なく思っとります。
>そんなこと言わずに書き込んでくだされ。
お言葉に甘えて、これからは確実に確認してから書き込みさせていただきます。
>>BCCの話題
いやいや、src/makefile.vcの中身見れば分かるけど、
src/msw/makefile.*を読んでるだけなので、
BCCだとsrc/msw/makefile.b32を使えばいいわけです。
src/makefile.vcをコピってちょっと修正すればOKだと思う。
×src/makefile.vcをコピってちょっと修正すればOKだと思う。 ○src/makefile.vcをコピってちょっと修正してもいいと思う。
>>539-542 レスサンクス、とりあえず来週
>src/makefile.vcをコピってちょっと修正
ためしてみます。
Cygwin環境でいじってみようと、ドキュメントに書いてあるとおりに ../configure --with-msw --enable-debug --enable-debug_gdb --disable-shared make でコンパイルしました。 これだと、cygwin1.dllが必要になっていると思うんですが、 cygwin1.dllが必要ないようにするにはどうしたらいいのでしょうか。 -mno-cygwinをどこかで指定するのでしょうか。
>src/makefile.vcをコピってちょっと修正 やってみたら簡単にできました。書き込むほどのことでもないですがとりあえず !include <makeb32.env> THISDIR=$(WXWIN)\src all: cd msw make -f makefile.b32 cd $(THISDIR) clean: cd msw make -f makefile.b32 clean cd $(THISDIR) cleanall: cd msw make -f makefile.b32 cleanall cd $(THISDIR)
ためしてみたのは make -f makefile.b32 FINAL=1 でライブラリを作成して samples\dialogs をメイク、実行ができました。
というか、 >BCCだとsrc/msw/makefile.b32を使えばいいわけです。 が、正解だったのですね。おさわがせスンマソ
へえ
>>546 さん
MinGWDSに同梱のwxWindowsライブラリからリソース使えますか?
MinGWからライブラリ作り直さないと無理ですかね・・・
というか「(゚∀゚)ノ☆バンバン! とりあえずライブラリ全部持ってこーい」ってオプションないのかな --enable-controls use all usual controls これは違うみたいだし
>>551 wxWindowsを入れてるPCとMinGWDS入れてるPCが違うので,正確には調べて
いません.
<wx/setup.h>
#define wxUSE_RESOURCES 1
#define wxUSE_PROLOGIO 0
#define wxUSE_WX_RESOURCES 0
こんな感じでdefineされていますが,とりあえずPROLOGIOが0ということは
.wxr形式のリソースは無理でしょう..rcはいけるんじゃないかな.
#さっさとdialogedをxrcバージョンにしろよ>wxWindows
>#さっさとdialogedをxrcバージョンにしろよ>wxWindows ちゃんとwxrceditってのがありますね.contribのなかにあるのを「ちゃんと」と 言うかどうかは知りませんけど. いまcontrib内のmake中ですが,errorやwarningが沢山出てくる・・・使えないかも.
wxrceditが一応ビルド&実行可能でした. 使い方が判らないけれど,単にXRC専用xmlエディタにプレビュー機能が 付いたみたいな感じで,RADツールみたくペタペタと貼るのは無理かも.
>>555 俺使い方良く分からんかった。
あれだと手書きの方が早い気がした。
>>556 一応,プレビューがサクサク表示されるならあっちの方がデザインしやすい
とは思う.でもまだXRCはお勧めできるものではないね.
っつーことで,wxr形式のリソースに対応していないMinGWDS付属ライブラリは
使いにくいかも.
wxWindowsって結構こういう不完全な部分が多いかも.自分で使う分には良いけど,
C++初心者の後輩に使わせるGUIツールキットとしてはgtkmmかFOXの方が良いかも.
翻訳再参戦は延期してしばらく別のライブラリを触ってみます.
#Windows上でフリーで初心者にも使いやすい開発環境をそろえるのは大変かも.
otsu
思兼 ◆l3iwkTImVoにも見捨てられた哀れなライブラリ
>560 まあ、のんびりいくよ。マターリとな。 使う分にはいいんだが、訳すのは大変。ヒマが作れん。 Wikiみたいのだったらなぁ
wxFoundationとBorlandの採用がらみでMLは喧喧諤諤でし。
>>562 wxWindowsがBorlandに採用されるん?
>>560 どっちかっていうと,C++自体に愛想が付きかけている気がする.すごく
強力で,プロコンの競技部門には必須だし,それ以外でも自分個人で
使う分にはすごく良い.でも後輩に教えようとすると,プログラミング以外で
覚えないといけない部分があまりにも多いことに気が付く.
多分,他人と一緒にプログラムを書くときに,個人の能力差が一番問題に
なるのもC++だと思う.
#C#かJavaがガベッジコレクタ&VM無しで動かせるなら,すぐにでも移行したい.
Rubyだな
>>566 Rubyって起動速い?
値ベースと参照ベースをプログラマが指定できるGenericsがある?
メモリ管理をプログラマが指定できる?
JITコンパイラの最適化能力は高い?
ブロックは{}の形が見やすくて好きだけど,Rubyがプロコンの競技で十分使える
性能を持っているのなら後輩に教えてみる.
| ブロックは{}の形が見やすくて好きだけど,Rubyがプロコンの競技で十分使える |性能を持っているのなら後輩に教えてみる. と言う位Rubyを分かってるなら前4つの質問の答えは分かると思うが?
>>568 いや,Rubyのプログラムソースを見たことがあるだけで,実際に使ったことは無い.
Perlっぽいスクリプト言語だとか,中間コード+JITコンパイルだからPerlより速いとか,
その程度の印象はあるけどそれが正しい理解だと言う自身は無い.
調べてみた. 1.起動速度 C#より遅い 2.Generics 無い?(検索してもそれらしいものがヒットせず.リファレンスを概観しても載ってない) 3.メモリ管理 ガベッジコレクトに任せるしかない. 4.実行速度 C#にダブルスコアをつけて遅い. 結論 Perlの代わりにはなっても,C++の代わりになるとは思えない.
>>570 Rubyはモノタイプ言語なので、genericsは不要。
型チェックが無いので、ミスが許されない競技にはお薦めできないかも?
競技なら、タイピングに手間かけられないだろうから、いくら要件を満たしててもAdaなんかは除外でしょうね。
OCamlとか、どう?(よく知らんけど
C++の機能に満足してて複雑さに愛想が尽きてるならDが一番いいんだろうけど、まだアルファだし。
//スレ違いすまんです
>>573 D言語はGC付きだよ。オフにすることもできるけどさ。
まぁ、でも、D言語は俺も期待。思想にちょっと不満はあるが。
文字列とか連想配列とかはライブラリに入れて欲しいかな、やっぱり。
>565 Templateみたいな仕組みのある言語があれば、そっちも勉強したいなあ。 コンパイル時に確定している情報と実行時じゃないと確定しない情報という観点で 効率化を計っている言語はC++以外に知らないしなぁ。
Eiffelとかどうなんだろう?
どんな言語にせよ、メジャーになってもらわないと仕事に使えないのが辛い。 メジャーじゃなくても仕事に使える、というつっこみはなしで。
まずは使ってメジャー化させてくださいw
連想配列は同意だが、文字列に関しては、そのまま文字列に使える配列というのは嫌いじゃ無い、 というか、素のCだってそうだし。 文字列をクラスにした場合、C++のように、リテラルからの格納形式への変換というコストと、 様々な文字列クラス乱立という混乱を招くので、組み込みで正解と思うし、 charの配列とそれ以外の配列を区別する必然性は無いので、OKかと むしろ問題は.sort。同じデータ列でも並び方は色々あるのに、一種類だけ言語に組み込む理由が… //スレ違いゴメン
>>580 見た感じ、標準ではクラスを使わず、データと関数を分離して使う方向で行ってるね。
ここんところがC的だが、Cより安全になってるようだからいいか。
でも、わざわざ配列操作のために演算子作ったり、deleteを連想配列の要素削除に使ったり。
うーん、普通に関数じゃダメなんかな。~ってタイプしにくいぞ。関数のがいいよ……。
凄いスレだ・・・翻訳プロジェクトが動いてる・・・ このスレの神に習ってFLTK日本語ドキュメントでも作っちゃおうかねぇ・・・
>582 ちょっと停滞中だよ。私も今しばらくはTikiの勉強中…… でも、いい加減飽きたから翻訳に戻ろうかな……
さっきCマガジンを立ち読みしてきた. C++BuilderXの紹介記事があって,Borlandへのインタビューもあった. wxWindowsは,将来搭載される予定のGUI関連の機能のプレビューと して搭載されただけで,wxWindowsの採用が決定しているわけではない とのこと. とりあえず,wxWindows3が大幅に使いやすくなって,C++BuilderXへの 採用されて,一気にメジャー化という夢はまだ残ってる.
585 :
デフォルトの名無しさん :03/11/18 21:43
そ、そうなのか。 なんだったんだ。
夢見すぎ。
587 :
デフォルトの名無しさん :03/11/18 22:23
GTK,gtkmmでいいじゃん。
>>588 gtkに比べて,wxWindowsはネイティブのLook'n'Feelだとか,多機能だという
違いがある.
特に機能に関しては,Write once, Compile anywhereを実現するために,
API依存を吸収するラッパクラスが多数存在する.
その代わりgtkmmに比べて泥臭いコードになるんだけどね(w.wxWindows3に
期待.
おれも、gtkやQtなどを使ってしまうことに賛成。 どうしても、windowsの操作感を求めるなら、外部だけ作り直してしまった方がいい。
逆にGTKやQtはwxWindowsに比べてどんな利点があるの?
2.4.2で、メッセージカタログをShift_JISで作るとちゃんと使えないみたい。 UTF-8では使えたので、内部での変換でしくってるのか? 2.4.0ではちゃんと使えてたのに……。
594 :
灰 ◆v/.u/aNe9w :03/12/09 01:29
595 :
デフォルトの名無しさん :03/12/09 18:31
$B$9$_$^$;$s!"$I$J$?$+65$($F2<$5$$!#(B $B2?$+D9$$=hM}$r$9$k;~$K!"=hM}$r$7$F$$$k$"$$$@$K(BWindow$B$H$+$,:FIA2h$5$l$J$/$J$C$F(B $B$7$^$&$N$G$9$,!"$3$l$r=hM}$NESCf$K:FIA2h$5$l$k$h$&$K$7$?$i$I$&$7$?$iNI$$$G$7$g$&$+!#(B $B%a%$%s%U%l!<%`$N(BRefresh(), Raise(), Update() $B$H$+$r8F$Y$PNI$$$N$+$H;W$C$?$N$G$9$,!"(B $B$=$l$G$O:FIA2h$5$l$J$$$h$&$G!D!#(B GUI$B$N%=%U%H:n$C$?;v$J$s$FKX$IL5$$$N$G$I$N$h$&$J%-!<%o!<%I$G8!:w$7$?$iNI$$$N$+$bJ,$+$i$:!"(B $B$I$J$?$+%]%$%s%H$@$1$G$bNI$$$N$G65$($F2<$5$$(Bm(_ _)m
すみません、どなたか教えて下さい。
何か長い処理をする時に、処理をしているあいだにWindowとかが再描画されなくなって
しまうのですが、これを処理の途中に再描画されるようにしたらどうしたら良いでしょうか。
メインフレームのRefresh(), Raise(), Update() とかを呼べば良いのかと思ったのですが、
それでは再描画されないようで…。
GUIのソフト作った事なんて殆ど無いのでどのようなキーワードで検索したら良いのかも分からず、
どなたかポイントだけでも良いので教えて下さいm(_ _)m
すみません
>>595 バケました。
先人は0.1秒以上かかる処理をメインスレッドでやるなと言っていたが。
要するに0.1秒未満で実行できるハードウェアを使えということか。
マルチスレッド
>>597 0.1秒未満の処理に分割しろって事ですな
wx494.htm によると,マルチスレッドにする他の選択として,演算を idle handler にするか,定期的に ::wxYield() (wxApp::wxYield())を 呼んで画面を更新してください,と書いてあります. wxYield は,プログレスバーや splashscreen を更新する時によく使われます. ためしてみてください.
>>601 ありがとうございました。さらに安全な::SafeYield()を使うことでそれなりに目的が達成されそうです。
また、
>>597 , 599
やはり途中で中止とかもできるようにしたいので、将来的にはマルチスレッドにもしようと思います。
ご指導ありがとうございました。
ちなみに wxMDIChildFrame::GetParent() って wxGTK だと wxMDIClientWindow を返して、 wxMSWだと
wxMDIParentFrame() を返すんですね。コレにハマっていたので、御礼兼メモとして書かせて頂きます。
604 :
デフォルトの名無しさん :03/12/21 14:39
どんどんあげていこう
じゃぁ、さげ
>>602 GetParentでクライアントウィンドウ返さるのっておかしくねぇ?
バグかな。
翻訳はここに書き込んでいいのかな? wxWindows Hello World サンプル の一文目は、 多くの人から、文法や基本的な原理に関する幾らかの迅速な判断が出来るように、 ここに小さなサンプルを示して欲しい、という要求をされてきたが、あなたは今、 wxWindows における"Hello World" を見ることが出来る。 って感じでしょうか。幾分堅いかな。
Borland の C++ BuilderXに,wxWindows用のパッケージがありました. A technology preview of a RAD designer for the wx framework and of a 100% ANSI/ISO C++ compliant compiler for Windows x86 For use with C++BuilderX Personal and C++BuilderX Enterprise Trial だそうです.
>>608 それ,ダウンロードしたPersonal版にはついてなかったんだよな・・・.
Borlandの中の人によると,まだwxWindowsに正式に決めたわけでは
無いらしい.
>>609 あくまで,_A technology preview_ですから.
でも,Borlandのサイトからダウンロードできるようになってました.
611 :
& ◆iFNZlc1izc :03/12/29 11:51
612 :
デフォルトの名無しさん :03/12/31 17:13
初心者ですみません。教えてください。 wxWindowsをダウソしてインクルードファイルのパス を通したのですが、wx/setup.hがないと叱られてサンプルが コンパイルできません。 で、自作の空のsetup.hをつくってwxフォルダに入れてみたのですが ダメなのですがどうすればいいでしょうか?
613 :
デフォルトの名無しさん :03/12/31 17:16
>>612 Windowsの検索機能でsetup.hを探しましたか?
>>613 レスありがとうございます。
探したのですが、#include wx/setup.h
になっていてwxにはないのです。
wx/unix/setup.hとかはあるのですが。。。
>>615 レスどうもです。
今読んでいるのですが、後ほど報告させていただきますね。
ありがとうございます。。。
レス遅れてすみません。 うまくいきました。 wx/msw/setup.hをwxフォルダにコピーしたらいけました。 どうもです〜。。。
まさかinclude/wxにコピーしたのか? もしそうだったら、そんな変なことせずに lib/msw???/ をインクルードパスに追加せーよ。
>まさかinclude/wxにコピーしたのか? そうです(TT) >もしそうだったら、そんな変なことせずに lib/msw???/ をインクルードパスに追加せーよ。 だってソース中で、#include wx/setup.h ってなってるんですもん(TT)
620 :
デフォルトの名無しさん :04/01/01 01:03
今年はwxWindowsがメジャー化しますように
>>619 >だってソース中で、#include wx/setup.h ってなってるんですもん(TT)
そりゃそうだよ。
lib/msw???/wx/setup.h
にビルドに対応したsetup.hが入ってるんだから。
lib/msw???/をインクルードパスに追加したら、#include <wx/setup.h>で
lib/msw???/wx/setup.hが読み込まれるだろ?
wxmsw242d.dllのサイズが26.7Mもあるんですが もっと小さくできませんか?
>>623 デバッグ用だとそんなもん.リリース版ではもっと小さくなるから気にしない.
あと,VCのランタイムと違ってwxWindowsのランタイムはバージョンが同じでも
configureの仕方で中身が違ってくるから,リリース版ではDLLを使わずにスタティックで
ビルドする事をお勧めする.
>>624 こんなもんですか。なるほど。
公開する上ででかいdllをダウンロードするのは大変だと思ってたんですが
しょうがないですね。
ありがとうございました。
>>625 wxmsw242d.dllはデバッグビルドされたdll.デバッグ情報が入ってるのでデカイ.
公開にはデバッグ情報の無いwxmsw242.dllの方を使おう.
できれば
>>624 に書いたようにスタティックで使うことをお勧めするけどね.
make -f makefile.g95 WXMAKINGDLL=1 でコンパイルするとwxmsw242d.dllができるのに対して、 wxmsw242.dllを作るにはどのようにコンパイルすればいいですか?
>>627 bccは使って無いから知らないけど,多分
make -f makefile.g95 WXMAKINGDLL=1 FINAL=1
だと思う.
あ,makefile.g95はgccか.多分コマンドは
>>628 で合ってる.
それでダメなら,cygwinかMinGWで
strip wxmsw242d.dll
でデバッグ情報を外せるはず.こっちだと最適化はされないけどね.
ありがとう。やってみます。
wxmsw242.dllできました。なんと4.85M! これで「サイズデカッ!」っていわれずにすみそうです。 ありがとうございました。
サンプルのコンパイルがうまくいないのはなぜですか? make -f makefile.g95 WXUSINGDLL=1 ../../include/wx/chkconf.h:47:9: #error "wxUSE_DYNLIB_CLASS must be defined." ../../include/wx/chkconf.h:55:9: #error "wxUSE_FILESYSTEM must be defined." ../../include/wx/chkconf.h:68:9: #error "wxUSE_DYNAMIC_LOADER must be defined." docview.cpp:212: error: invalid use of undefined type `class MyFrame' docview.h:43: error: forward declaration of `class MyFrame' make: *** [docview.o] Error 1
ちょいと質問. wxWindowsを最初にいったんビルドしたら消してもいいファイルってどれだろ? ちょっとHDがきつい(全体で9GBしかない)から, もう要らないファイルは消したいんだけど. Debug〜は(Release〜さえあれば)いらないの?
>>633 環境によるけれど,例えばMSYS+MinGWの場合,make installしたあとは
wxWindowsを解凍してできたフォルダの中身全部いらなかったと思う.
必要なヘッダファイル+ライブラリファイルがコピーされるから.
Debug〜は,wxWindowsのデバッグ情報が要らないならいらないと思う.
今はwxWindows入れて無いから確認取れないので,誰かフォローお願い.
エラーの原因がわからないので寝ました。 先程起きてもういちどやってみたらうまく行きまくりでした。ムハッ 原因はFINAL=1を付け忘れたことです。 しかも、サイズが205K! デバッグのときは1M以上あったのに驚きです。 make -f makefile.g95 WXUSINGDLL=1 FINAL=1
>633 Win2K/VC++/wxWindows2.4.2で試してみました。 includeフォルダとlibフォルダ以外は削除しても問題なさそうです。 #Locale使うのならlocaleフォルダもいるかな? また、libフォルダの中身も、リンク/インクルードしているファイル以外は 削除しても問題なさそうです。 #自分のプログラムだと lib/wxmsw.libとlib/mswd/wx/setup.hのみ これで19,989,302 バイト……スタティックリンクだからしょうがないけどね。
>>635 >>637 とりあえずRelease〜とかDebug〜とか消してみた.
ほとんどがobjファイルだったからOKだよね.
ありがと.
サンプルのopenglだけうまくコンパイルできない。
Java1.5でデフォルトの見た目がWindowsネイティブっぽくなる&テンプレートっぽい機能が使えるようになるので、wxWin捨てる悪寒です。
>>642 捨てるもなにもそもそもどれくらい使っていたのかと(ry
>>641 エラー内容は?
OpenGLのヘッダーファイルは入っている?
mingwフォルダにあるgl.h、glex.h、glu.hの3つをコピーしてみたけど失敗。 cube.cpp:31:2: #error Please set wxUSE_GLCANVAS to 1 in setup.h. In file included from cube.cpp:34: cube.h:44: error: syntax error before `{' token cube.h:50: error: syntax error before `*' token cube.h:55: error: destructors must be member functions ・ ・ cube.cpp: In member function `virtual bool MyApp::OnInit()': cube.cpp:524: error: syntax error before `(' token make: *** [cube.o] Error 1
>>646 Please set wxUSE_GLCANVAS to 1 in setup.h
・・・
Please set wxUSE_GLCANVAS to 1 in setup.h完了 しかし新たなる問題が。 cube.o(.text+0x13b4):cube.cpp: undefined reference to `_imp___ZN10wxGLCanvasC2EP8wxWindowPKS_iRK7wxPointRK6wxSizelRK8wxStringPiRK9wxPalette' cube.o(.text+0x1444):cube.cpp: undefined reference to `_imp___ZN10wxGLCanvasC2EP8wxWindowPKS_iRK7wxPointRK6wxSizelRK8wxStringPiRK9wxPalette' ・ ・ cube.o(.text$_ZNK10wxGLCanvas12GetClassInfoEv+0x2):cube.cpp: undefined reference to `_imp___ZN10wxGLCanvas18sm_classwxGLCanvasE' make: *** [cube.exe] Error 1
ライブラリをビルドする前に1しろよな、当然ながら。
0から1にはしたよ
こんなのもある cube.cpp:81: warning: unsigned int format, long int arg (arg 3)
もしかして、wxWindowsとは別にopenGLをインストールしないとダメ?
>>651 650も書いてるが、wxWindowsを初めからビルドし直さなければ
だめだよ。
それから、サンプルのコンパイル。
>>654 え?
そんなめんどうなことやりますよ。
656 :
デフォルトの名無しさん :04/01/07 21:18
やりおえたら、その手順をうpしてね♪
Linux版だとRPMにGL版入ってるけどな。
>>646-647 にあるように、スタートボタン→検索(F)→ファイルやフォルダ(F)で
wxWindowsをインストールしたフォルダ内のsetup.hを探して
setup.h内でwxUSE_GLCANVAS 0 となっているところ全てをwxUSE_GLCANVAS 1に変更。
その後、654さんの言うとうり、wxWindowsを始めからビルドしなおしました。
d:\wx\src\>mingw32
d:\wx\src\>cd msw
d:\wx\src\msw>make -f makefile.g95 cleanall
d:\wx\src\msw>make -f makefile.g95 WXUSINGDLL=1 FINAL=1
WXMAKINGDDとすべき所をいつものようにWXUSINGDLLとしていたので失敗。
d:\wx\src\msw>make -f makefile.g95 cleanall
d:\wx\src\msw>make -f makefile.g95 WXMAKINGDLL=1 FINAL=1
ビルド時間長杉->睡眠->起床->ビルド成功!
次はサンプルのコンパイル。
d:\wx\samples\opengl\cube>make -f makefile.g95 cleanall
d:\wx\samples\opengl\cube>make -f makefile.g95 WXUSINGDLL=1 FINAL=1
大成功!みなさんありがとうー。。。 あれ? (つづく)
cube.exeをクリックしても、2つのダイアログが出て起動せず。 ・プログラム開始エラー CUBE.EXE ファイルは 欠落エクスポート WXMSW242.DLL:_ZN10wxGLCanvas10SetCurrentEv にリンク されています。 ・D:\wx\samples\opengl\cube\cube.exe D:\wx\samples\opengl\cube\cube.exe システムに装着されたデバイスは動作していません。 前にもコンパイルしたサンプルが起動しなかったことがあって、その時はdllをC:\WINDOWS\SYSTEM内に入れたらうまくいったので、 同様にd:\wx\lib内のwxmsw242.dllをコピーして、C:\WINDOWS\SYSTEM内にペーストしようとしたら、 ファイルの上書き確認ダイアログ出現。 現在のファイル サイズ:4.85MB 更新日時:2004年1月1日、23:39:22 に新しいファイルを上書きしますか? サイズ:4.87MB 更新日時:2004年1月7日、22:11:32 setup.hの情報を変えてビルドし直したせいか、ファイルのサイズが違ったので、 これで間違いない(長井風)と思い、もう一度cube.exeをクリックすると。キター!! みなさんありがとうございました。うまくいきました。
>>659 dllだと,ビルドしたときの設定によって中身が変わっちゃうからね.
自分で使う分には,使いそうな機能全部Enableにしたdllを使えばいいかもしれないけれど,
配布する時にはユーザーが使っているdllのことも考えないといけなくなる.
全部スタティックリンクしちゃえば,DLL HELLは避けられるよ.賢いリンカは使わない関数は
外してサイズを削ってくれるし,そもそもMFCとちがってwxWindowsはアプリが少ないからdllを
使ってもメモリの節約になら無いから,スタティックがお勧め.
>>660 をネタにググルってみる。
まずはスタティックリンクから
wxArray と wxList を翻訳してくれた方がおりますです。 あんがとー。
wxButton wxControl wxArray wxFlexGridSizer デバイスコンテキストの概要 んを翻訳してくれた方々がおりまッス! ありがつー!
試訳 WxApp::FilterEvent この関数はなんらかのイベントを処理する前に呼ばれ、アプリケーションがイベント処理を 差し替える機能を提供する。 This function is called before processing any event and allows the application to preempt the processing of some events. このメソッドは -1, TRUE, FALSE のどれかを返さねばならない。 -1を返した場合、通常のイベント処理が行われる。 TRUE,FALSE を返した場合は、イベント処理はただちに停止する。 TRUEの場合、そのイベントは既に処理されたものとみなされ、 FALSEの場合、イベントは全く処理されないものとみなされる。 If this method returns -1 the event is processed normally, otherwise either TRUE or FALSE should be returned and the event processing stops immediately considering that the event had been already processed (for the former return value) or that it is not going to be processed at all (for the latter one).
バイトオーダーマクロ wx437.htm 環境変数アクセス関数 wx443.htm wxRadioBox wx318.htm バージョンマクロ wx425.htm を翻訳していただきました。 ありがとございまぬ。
667 :
デフォルトの名無しさん :04/01/24 00:10
wxWindowsを使って2chViewerを作ろうとしています。 Proxy設定&User-Agentの設定はwxURLと wxHTTPのAPIを使ってうまくできました。 (wxWindowsドキュメントの翻訳に感謝!) 次にHTMLのパースをしようと思っているのですが HTMLParserは未翻訳なようなのでまず翻訳をやろうと 思います。 ただ、ざっとみたところサンプルがないと扱えなそう。。。 どなたか使ってみている方おられますか?
669 :
デフォルトの名無しさん :04/01/27 21:59
>668 確かに・・・ ボード一覧取得用ソースを参考にして 文字列操作のみでいけそうですね。
wxWindows3.0 マダー? STLization マダー?
うpろだにあげてくれた人 ありがのう。 回収する時間がちょいと無いので しばしおまちを
レイアウト関係が貧弱だーーー!!!
>>672 そのページのDone Listはこうなってるけど、コード見てないから詳しくは分からん。
1. Build system redesign allowing to easily create add-on libraries
2. Make it possible for the wxGUI ports to use wxBase library directly
3. provide a standard implementation of wxRenderer so that the other (i.e.
native) ports could use the universal controls as well
4. make wxListCtrl and wxTreeCtrl really themeable (depends on the previous
point as they should still be usable in the normal ports)
5. Text selection in wxHTML
6. STLization
>>673 wxSizerって、そんなに貧弱に思えないけど・・・
>>674 一見そう見えるんだけど、様々なニーズを満たせるほど設計がよくないです。
必要かつ十分な設計になってないというか。
SwingやGTKのレイアウトと比べると色々できないことや悩むこと多し。
677 :
デフォルトの名無しさん :04/02/07 13:08
どんどん上げちゃおう
>>678 >卒研発表終ったけど
_, ,_ パーン
( ‘д‘)
⊂彡☆))Д´) >>思兼
うらやましい。俺今週末修論発表だ。早く楽になりたい。
Windowsで、メモリ上に、BITMAPINFOHEADERと、ビットマップデータがある状態で、 それを画面に表示させたい場合ってどうやってやるかわかります? wxBitmapのコンストラクタに、幅、高さ、色数、データをぶち込んでみたんですが、 なんか表示される気配がありませぬ。 とりあえず24bitカラーなんで、パレットはつかってないんですが。
>>680 wxImageをビットマップの中身から作成するべし.BMPのフォーマットって変態的だから
かなりめんどいけど.
なんだか呼ぶコンストラクタ変えたらできました 今までは、 wxBitmap(void* data, int type, int width, int height, int depth = -1) を呼んでたんですが wxBitmap(const char bits[], int width, int height, int depth = 1) こっちにすると、とりあえずOKですた 上下反転になっちゃうのでwxImage::Mirror()を食わさなきゃアカンですが。 なんか2つのコンストラクタがどう違うのかわかりませんが、 リファレンスみると、下のほうは、 「ポータブルなアプリ内では、白黒(depth=1)でしかつかっちゃいやよ」 ってなことが書いてある気がするんだが今回めっちゃ24ビットだし… まあこんなモンがメモリ上にあるあたりすでのポータブルじゃないから 問題なしっていう話がかなりあるが…
>>682 wxBitmapの中のソースは見てないけど,リファレンスには
"under Windows, the data is passed without any changes
to the underlying CreateBitmap() API."
って書いてある.んで,MSDNのCreateBitmap()には,
"The CreateBitmap function can be used to create color bitmaps.
However, for performance reasons applications should use CreateBitmap
to create monochrome bitmaps and CreateCompatibleBitmap to create
color bitmaps. "
って書いてある.Windowsでは,推奨はされていないものの,ちゃんと動く.でもWindows
以外では動かないから,プラットフォーム非依存を目指すならwxImageを使う,もしくは
一旦ファイルに書き出してからwxBitmapで読み込むという手順を取る.
そのメモリで作ったwxMemoryInputStreamを与えてwxImageを生成する、 というのがポータブルな正しい方法じゃないかな?
>>684 おぉ,wxImage::LoadFileではwxMemoryInputStreamがあるんですね.
wxBitmap::LoadFileはファイル名しか受け付けてくれないから諦めてた.っていうか,
なんでwxBitmap::LoadFileはwxMemoryInputStreamに対応してないんだろう?
Windowsで、ステータスバーつかってると、 一番左側のフィールドに対して、 SetStatusTextとかPushStatusTextで 文字列を設定しても、マウスでメニューいじったり、適当に動かしてるだけで、 文字が消えてしまうんですが、抑制ってできないのかな? たぶん、メニューとかツールバーのツールチップを表示させようとしてるのが原因っぽいんだが。。。
>>687 一応こんな関数がある.
void wxFrame::SetStatusBarPane(int n)
メニューやツールバーのヘルプを表示するステータスバーのフィールドを指定する。
-1を指定するとヘルプを表示しない。
Push/PopStatusTextを使うと,ヘルプの表示が終ると元の表示に戻るっていう
実装にして欲しいね・・・.
ソース確認してみた. wxFrameBase::DoGiveHelp()がPushStatusTextじゃなくてSetStatusTextを使ってる. メニューにカーソルを当てたらEVT_MENU_HIGHLIGHT_ALLマクロで指定した関数を 呼び出せるけど,メニューからカーソルを外したというイベントが無いからPush/Popは使えない みたい.
bcc32 v5.5.1 以上用 locale で苦しまないためのパッチ $(WXWIN)/src/common/intl.cpp にあててください --- intl.cpp.org2004-02-12 07:34:29.421875000 +0900 +++ intl.cpp2004-02-12 07:36:46.968750000 +0900 @@ -65,6 +65,13 @@ #include "wx/mac/private.h" // includes mac headers #endif +// Borland C++ compiler version 5.5.1 has some problems (Abnormal memory +// reference) in compiling this source with option -O2. +// This pragma is for escaping that. +#if ( defined(__WIN32__) && defined(__BORLANDC__) && (__BORLANDC__ >= 0x551) ) +#pragma option push -O1 +#endif + // ---------------------------------------------------------------------------- // simple types // ----------------------------------------------------------------------------
@@ -836,7 +843,7 @@ #ifndef WX_NO_LOCALE_SUPPORT wxChar *szLocale = retloc ? wxStrdup(retloc) : NULL; - bool ret = Init(name, canonical, retloc, + bool ret = Init(name, canonical, szLocale, (flags & wxLOCALE_LOAD_DEFAULT) != 0, (flags & wxLOCALE_CONV_ENCODING) != 0); if (szLocale) @@ -2442,5 +2449,9 @@
// --- --- --- generated code ends here --- --- --- +#if ( defined(__WIN32__) && defined(__BORLANDC__) && (__BORLANDC__ >= 0x551) ) +#pragma option pop +#endif // pragma option push -O1 + #endif // wxUSE_INTL wx242用 無駄な改行が入ってしまいました。 ごめん。
>>684 ,686
遅れましたが、さんくすです。m(_ _)m
とりあえず、686のソースを適当に改造して使ってみることにしました
694 :
デフォルトの名無しさん :04/02/16 19:42
wxWindowsすげえ。 これでつくったアプリはリコンパイルだけでプラットフォーム非依存?
>>694 そーゆーふうに作ればね.
プラットフォーム依存で作ることも可能.
翻訳プロジェクトの方達へ. サンプルプログラムソース内のコメントの翻訳の仕方を統一しない?
もう一つ提案. クラスリファレンスを翻訳する時に,重要な部分の訳を優先しない? クラスリファレンスの中身はメンバ関数の説明が大部分を占めていて,その多くは わざわざ訳さなくても実際に使う時に読めば簡単にわかる程度のものだし. パラメータの説明とか,単語数個で説明してあることをいちいち訳するのがメンドクサイ. メンバ関数の説明以外のクラスの説明と,大きなRemarks項目が含まれる関数の説明 を訳し終わったら,とりあえず概訳完了ということにする.それでできるだけ多くのクラスを 概訳することを優先する.
698 :
デフォルトの名無しさん :04/02/18 22:53
age
>>思兼 了解。 っつっても、何も出来ませんが…。
>>700 イイ!
ところで,M$のWindowsと名前がかぶってるからという理由で,wxWidgetsに名前が変わるらしい.
>>697 了解です.(最近全然貢献してなくてすみません)
それから,成果をTeXソースに反映してはどうかと考えています.
sf.jp の方で doc/latex を管理してもらえるなら,backport は
私がやってもかまいません.どうでしょう?
February 23rd, 2004. wxWidgets 2.5.1 has been released.
>>703 イイ.けど,2.5.xは開発版で,次の安定版は3.0.xなんだよなぁ.
ドキュメントのバグは2.5の方が少ないんだけど,とりあえず翻訳するのは2.4.0のままかな.
xrcでメニューとかダイアログとかゴリゴリ書いてたんだけど、 どうも速度的に思わしくないので,C++コードに書き換えたいなーと思うんですが、 xrcからc++にサクっと変換をしてくれるツールってありませんかね? wxrcってそんなのと思ったら,xrcファイルをただ単に実行ファイルに埋め込むだけなんすね。
>>705 そんなに速度が気になる?
何度も使うリソースなら,一旦生成したのを表示/非表示切り替えるだけにして
生成を最初の一度にするとかできない?
>>702 CVSとか使い慣れてないので,僕はちょっと・・・.sf.jpのProjectManagerの方
お願いします.
そういや,OfficialHPのマニュアルが2.4.2になってる.日本語マニュアルもアップデートする? とりあえずは2.4.0と2.4.2でdiffとって,大きな変更が無いファイルはそのまま使い,変更が あるマニュアルは変更点を日本語に反映してという作業が必要になるけど・・・.マニュアルで wxWindowsがwxWidgetsに変更されるまでは待つか.
OfficialWebのマニュアルが2.4.2になったから,日本語マニュアルの原文へのリンクが 切れてる.マンドクセ.
>>708 latex の import : こちらで import しておきます.
リンク: sed で全て 2.4.2 に置き換えてみました,これ commit していいですか?
>>709 明日試験終るんで,今週中に
>>707 の作業やっておきます.リンクの書き換えも
そんときに一緒にやっときます.
>>707 の作業について.
1.diffをとって変化が無いファイル
日本語ドキュメント内の,原文へのリンクの書き換えのみ
2.diffをとって変化があるファイル
リンクの書き換え+原文が変更された旨をコメントとして記す.
という感じで行こうと思います.翻訳者は,原文が変更されたファイルを訳する場合,
1.全く日本語訳されていないファイル
日本語訳のbodyタグ内を2.4.2のbodyタグで上書きしてから一旦commit.その後
翻訳開始.
2.日本語化されているファイル
頑張って変更点を反映.
という流れになります.
誰か他にアイデアありませんか?
>>711 思兼さん,
すみません,
> 日本語訳のbodyタグ内を2.4.2のbodyタグで上書きしてから一旦commit
の意味がよくわからない...とにかく何でもいいから追記して commit
しなさい,ということですか?
>>712 今の日本語ドキュメントは2.4.0を元にして訳してる.で,2.4.2で内容が変更された場合,
内容(=<body>〜</body>)を2.4.2のもので上書きしてから翻訳を始めてねって意味.
ヘッダ(=<head>〜</head>)にはスタイルシートとか原文へのリンクとかに必要なものが
入ってるから,上書きしないでね.
>>713 i see.
今 CVS を見たら, wxWidgets というブランチができていますね...
中身は実質的に 2/22 あたりの wxWindows リポジトリをコピーしたものの
ようです.TeX ソース上では,まだ wxWidgets への置き換えは始まって
いませんね.うーん,いつ,どっちから作業コピーを取り出せばよいのかなぁ.
wxのuserMLを見てたら,Widgetという名称も問題が起こる可能性があるらしいです. とりあえずwxWindowsのまま様子見しましょう.
>>714 「wxWidgets というブランチ」
リポジトリの間違いでした... _| ̄|●
>>716 ・・・ただ単に別モジュールじゃないの?
やっぱり,全く訳をしていないファイルのbodyタグは,こっちでプログラムを使って2.4.2のものに 入れ替えます. 問題は既に訳されてるファイルが変更されてる場合だけど,どうしよう?コメントでdiffの結果 をHTMLの中に埋め込んでおくかな?
>>706 よく確かめてみたら、デバッグ版でやってたのがいかんかったみたいです。。。
Release版でビルドしなおしたら普通に速く動いてくれました。
ただ、なんかプログラムがバグったとき、
Debug版で実行したいとき毎回遅いのはちと辛めです。
メニューもxrcで書いてるんで、メインウィンドウが表示されるまでに
Debugだと30秒ぐらい平気でかかってしまうのはなんでなんでしょ?
しかし、Releaseだと普通に1秒もかからず表示できるのに…
ためしに、wxWindowsのライブラリをビルドするときに、
最適化を最高にしてみたけど、あんまし変化みられず…
xrcの部分以外はそんなに遅くないから、
ASSERT判定とかがあって遅くなりまくっちゃった
ってわけでもなさそうだし、、、
う〜む、謎。
>>719 >メニューもxrcで書いてるんで、メインウィンドウが表示されるまでに
>Debugだと30秒ぐらい平気でかかってしまうのはなんでなんでしょ?
んなこたーない。ってか、そのxrcでかいのか?
wxtkでいいじゃん。
コンパイルオプションが違っていて、デバッグ版では中間オブジェクトまでいち いち生成するが、リリース版ではインライン展開も効いてすっきりするとか?
>>720 メニュー2個とダイアログ3個が同じファイルに書いてあって、サイズは30kぐらいかな。
これって大きいのかな?
>>721 wxtkとはなんぞや?
>>722 だから、ライブラリビルド時にコンパイルオプションを変えて、
最適化を最大にしたんですが、ダメですた。
インライン展開もしたはず
mingwでXRCライブラリのdll作って使えた人います?
727 :
デフォルトの名無しさん :04/03/11 13:26
いろんなものがwxWidgetsに改名されつつありますね。 CVSでソースとってる人は"CVS and maillist hostname changed"という サブジェクトのメールを参考に作業をお忘れなく。
結局まだ更新してません.スンマセン.
>>728 Thanx. 反映しておきました.
ドキュメントのバージョンアップの問題はこれからも起こるから,原文のバージョンアップに 対応する方法を確立しておいた方が良いかも. 原文の旧バージョンと新バージョンをdiffして,変更があったファイルをリストアップして, 日本語訳をバージョンアップに対応させるたびにリストからそのファイルを削除していくという 方法はどうだろう.もちろん変更があったファイルのリストはcvsで管理すると.
いいと思います...が,sfで管理者やっている面子がスレッドを 見てないようですね...
とりあえず,wxWindows→wxWidgetsの置換と,本家URLの置換をしてみました. 日本語版プロジェクトサイトで公開してるのを見て,問題があったら指摘してください.
ていうかコンパイルできる環境は構築したけど、難しいなこれ。 リファレンス見ても全く分からん。機能があるのは分かるが使い方が分からん。 ここにいる人って、実際にリファレンス使ってプログラミングしてるの? リファレンスを翻訳されるのは有難いが、分かりやすいチュートリアルが欲しいところ。 ウィンドウを出すだけじゃなくて、他のコントロールを使う方法とか・・・。
>>733 僕は今の所リファレンスだけで十分だけど。
使い方分からんのは例えば何?気が向いたらチュートリアル書くよ。
>>733 使い方が判らないならサンプルプログラムを見たら良いと思うよ.
>>734-736 レスさんくす。
とりあえず、サンプルプログラムとPDFを見てやってみることにします。
topic overviewを見るのがおすすめ。
見てますョ。
741 :
デフォルトの名無しさん :04/03/21 23:18
2.4.2をダウンロードする下に、2.5.1って言うのがあるんだが、こっちを落したほうが良いの? 来たばっかでワカンネ…
このライブラリを使って作ったソフトを 商用としてパッケージや製品へのバンドルなどで 販売したとしてソースの公開は必要ですか? ソースを改変してなければ問題ないのかなと 認識してますが、あってますか?
>>742 サンクス。とりあえず、2.4.2でやってみます。
ageちまった…スマソ
>>746 デュアルライセンスというわけではないので表現が変。
The wxWidgets 2 licence is essentially the L-GPL (Library General Public Licence), with an exception stating that derived works in binary form may be distributed on the user's own terms.
748 :
デフォルトの名無しさん :04/03/24 10:07
wxWidgets に名前変わったのかよ!!
非Windows以外の環境でwxHTMLに日本語表示できた人いらっしゃいます? Liunxでeuc-jp, utf-8, unicodeどれもダメ。念のためhtml中のcharsetも指定したけどダメ。 euc-jpとutf-8は文字化け、unicodeはエラーになる。 unicodeが有効にしてないため、 メニューやダイアログボックスは何も変換しなくてもそのまま表示されるけど、 wxHTMLだけがうまくいきません。成功した人、設定を教えて下さい
言い忘れましたがwxpython上です。でもソースみると単なるラッパーみたい。
>>750 一切していません。全てデフォルトでメニューなどはそのまま表示されます。
デフォルトフォント以外だとフォントを何にするかいちいちダイアログボックスで聞いて来るので
うっとおしいのと、設定しても反映しないことがあるので。
wxHTMLだけ文字化けします。
wxhtmlwindowのSetFonts("", "", (10, 12, 14, 16, 19, 24, 32))
はセグメンテーションエラーになります。
753 :
デフォルトの名無しさん :04/03/30 20:26
MSYS と MinGW でビルドしようと思うんですが、 MMX 付きの Pentium と k6-2 以上で動くようにするには、 --host はどうしたらいいんでしょうか?
>>752 フォント一覧を取り出すことができますが、SetFontsでセグメンテーション違反を起こします。
SetFonts("", "", (10, 12, 14, 16, 19, 24, 32))
で落ちるのでGTK自体に問題があるのかもしれません。あきらめます。
i586-mingw32じゃないかな。
>>755 教えていただいたようにやってみました。
サンプルなどもコンパイルできて動いているようなので、
このまま行こうと思います。
ありがとうございました。
757 :
デフォルトの名無しさん :04/04/02 22:12
MFCのプロパティシート/ページのようなのって無いですか?
のひょーん
760 :
名無しさん@Vim%Chalice :04/04/20 11:05
デバイスコンテキストに回転した楕円形を描きたいのですが、どのように すれば良いのでしょうか?wxDC::DrawEllipseでは回転角度は指定出来ない ようですし、rotateぐらいのキーワードしか思いつかないのですが、調べて もwxDC::DrawRotatedTextぐらいしか見付からず、困っています。 どなたか教えて頂けませんでしょうか。お願い致します。
ドキュメントに無いけどwxTransformMatrixなんてのを発見しました。 これとcontribの中のcanvas使えば何とかなりそうかもです。
wxのスポンサーにvmwareがついてるけど、vmwareの GUIもwxで作ってんの?
マルチプラットフォームが流行ると、vmwareが売れると思ってるからでは?
age
C++BuilderXに見捨てられたライブラリはこれですか?
別にBorlandごときに見捨てられたところで痛くもかゆくもないわ。 吉野家みたいに速くて安くて(゜Д゜)ウマーと言われていたのも 遠い昔の話だし。
某厨って好きな時に都合の良い夢を見られる体質なんですね(微笑
以下の環境で wxWidget の開発を試してみました。
Windows XP
Eclipse 2.1.3
CDT 1.2.1
wxWidget 2.4.2
cppunit 1.8.0
http://www.h3.dion.ne.jp/~k5_n/wxwin/setup_win.html を参考にウィンドウを出すだけのプログラムはできるようになったのですが、
make(というかgcc)が激遅なのはしょうがないとして、
eclipse の code assist(補完機能)が、
Ctrl+SPC を押してから候補がでるまで10秒程もかかり実用になりません。
こんなもんなんでしょうか?
初めて書き込むんで、板違いだったらすいません。
771 :
デフォルトの名無しさん :04/05/01 18:32
gccはプリコンパイルヘッダが効かないから遅いんじゃなかったっけ。 最新のバージョンでそれもようやく対応したそうな。 CDTもコード補完出来るようになったんだねー。 俺も使ってみるか。
Ctrl+Spを音楽プレイヤーの再生/一時停止切り替えキーに設定してるわorz
>>771 gcc のバージョン書くの忘れてました。
cygwin を導入したときついてきた gcc 3.3.1 でした。
おっしゃるプレコンパイルヘッダ機能は 3.4 からのようですね。
cygwin の gcc がバージョンアップするのはいつごろですかね?
コード補完も CDT がヘッダファイルをあらかじめ見て
情報を集めといてくれれば速くなると思うのですが、
こういう話題は Eclipse のスレになるのでしょうか。
VC++.NETでサンプルをコンパイルしようとしたんですが dde.hでエラーいっぱいで困ってます。 error C2143: 構文エラー : ';' が '&' の前にありません。 error C2433: 'wxDDEServer::wxList' : 'inline' はデータ宣言をするのに使用できません。 error C2501: 'wxDDEServer::wxList' : 識別名を宣言するのに、型が指定されていません。 error C2146: 構文エラー : ';' が、識別子 'm_connections' の前に必要です。 etc. 解決策知りませんか?
自己解決しますた。
何度も言わせるな。解決策も書いとけー。
libのコンパイルしてなかっただけ。
779 :
デフォルトの名無しさん :04/05/08 01:55
http://www.h3.dion.ne.jp/~k5_n/wxwin/ にあったmenuというサンプルをPlamo Linux 3.3環境下でコンパイルして
みましたが、ウインドウタイトルを除いて日本語が文字化けします。
windows以外では日本語使えないのでしょうか?
それとも何か設定があるのでしょうか?
ちなみに
static wxLocale theLocaleObj(wxLANGUAGE_DEFAULT);
も入れてみましたが結果は一緒でした。
>>778 その情報で十分だ。
今度初心者が
>error C2143: 構文エラー : ';' が '&' の前にありません。
というメッセージを見たときに、「libのコンパイルをすればいい」と分かるじゃないか。
2.5.1の新機能ってどこに書いてあるの? HPのドキュメント見たけどよくわからん。
書き忘れてましたが、configureの際setup.h.inの中の wxUSE_WCHAR_Tの値は1に変更した上でなおかつ日本語 化けるという話でつ。スマソ。それとwxWindowsは2.4.2です。
786 :
デフォルトの名無しさん :04/05/08 14:57
GTK2.x向けのwxWindows2.4.2での質問です。 wxGLCanvasを使ってクロスプラットフォームの3D appを作ろうとしています。 タブを使うため、wxGLCanvasはtopのwxFrameに付けずにwxNotebookを作成し、 その中にwxGLCanvasを作成しました。Windowsではこれでうまくいくのですが、 GTK版ではwxGLCanvas::OnSize()中でGetSize(&x, &y)とすると、サイズ変更する前の 古いwxGLCanvasサイズが帰ってきます。wxGLCanvasをtopのwxFrameから直接作成した場合は 問題なく動作します。GTK版wxNotebookかwxNotebookSizerの挙動に問題があるのかなと思ったのですが、 どなたかアドバイスお願いいたします。
>>770 自己レス
Eclipse 3.0M8
CDT 2.0M8
にしたらコード補完まあまあ速くなりました。
ただ読み込むヘッダファイルが多いためか、
コード補完がタイムアウトしてしまうので、
"Content Assist parsing timeout(in milli seconds)"って項目を
大きくしてやらなければいけないみたいです。
788 :
デフォルトの名無しさん :04/05/10 05:40
wxWindows(wxWidgets)って軽いんですか?
wxWindowsはその存在を軽んじられていることで有名です。
790 :
デフォルトの名無しさん :04/05/10 19:21
マルチプラットフォームGUIライブラリで一番メジャーなのって、なんなんだろうね。 GTK、Qt、wxWidgets?
Windows.Formsだろ
>>790 QtのWindows版にもGPL適用できたら間違いなくQtがメジャーになってたのに・・・
LISENCEが全然分からないんですけど、 例えばスタティックリンクした場合、こちらは何をしなければならないのですか? LGPLの場合とwxWindows Library Licenceそれぞれについてお願いします。
>794
ずばり書いてあるよ。
まずライセンスの中身はこれでOK?
http://www.wxwindows.org/newlicen.htm http://www.wxwindows.org/licence3.txt 大雑把にいうと(ツッコミ歓迎)
・このプログラムはLPGLに従って再配布/修正することができる
・また、例外として、
1. このライセンス保持者が追加であなたに許諾を与える。(使用するかどうかはあなた次第)
2. その例外とは「貴方は自分が望む条件で、このライブラリを元にした成果物の
バイナリオブジェクトバージョンを使用、コピー、リンク、修正、出版することができる」
ことである。
3.もしあなたがGPL又はLGPLライセンスのコードをこのライブラリにコピーする場合は、
上記例外はそのコードに当てはまらない。
4. もしあなたが自分自身でこのライブラリを修正した場合、上記例外をその修正箇所に
適用するかどうかはあなた自身が選択できる。
……と、なる。
>例えばスタティックリンクした場合、こちらは何をしなければならないのですか?
>LGPLの場合とwxWindows Library Licenceそれぞれについてお願いします。
LGPLに従うなら、成果物を再配布するときにソースコードも一緒に再配布する必要がある。
wxWindows Library Licenceに従うなら、例外規定2に従ってバイナリコードのみを配布してもOK
>>795 >LGPLに従うなら、成果物を再配布するときにソースコードも一緒に再配布する必要がある。
>wxWindows Library Licenceに従うなら、例外規定2に従ってバイナリコードのみを配布してもOK
この2行でよく分かりました。ありがとうございました。
#ライセンスを日本語に訳してもらっても、やっぱり意味が分かりませんでした。
日本語対応はどうなんですか? IMEとか。
よくわからんけど、そのあたりは大丈夫だと思う。 日本語関連で問題が出るのはコンパイラの問題の場合が多いし。 っていうか、VC2003ツールキットでうまくコンパイルできん。 まぁ、情報が流れるのを待つか・・・。
>>798 コンパイルしてみた。
スタティック版は上手くいくよ。
が、DLL版は失敗する。
delayimp.libが無い為リンク出来無い。
何処かから合法的に持って来る方法は無いかな?
800 :
デフォルトの名無しさん :04/05/20 23:58
bool Get800() { return TRUE; }
>>798 開発版は対応してる模様
wx-cvs-20040521.tar.bz2をビルドしたところ、
スタティック版もDLL版も問題なく成功。
早く次の安定版が出てくれればいいのだが…
Doxygenかましたらまともなドキュメントになるのになー
あー、嘘嘘。やってみたけど見にくいわ。 defs.hが痛過ぎる。全部まとめちゃってるから各クラスの解説に定数が出てこねー。ダメダコリャ。 でもメソッド一覧はやっぱりDoxygenの出力使えるといいなあ。 ちゃんとwxApp::MainLoopはvirtualって出るし。それに wxWindow::SetSize(const wxRect &rect) って実はサイズフラグも取れるって知ってた? ドキュメントでは↑だけど、本当は↓これ。 wxWindow::SetSize(const wxRect &rect, int sizeFlags=wxSIZE_AUTO) Doxygenしてみて初めて気付いた。 ドキュメントとソースを行ったり来たりするのは面土居sage
wxWindowsで作られた有名ソフトって何ですか?
>>799 DELAY_LOAD=delayimp.lib \
/delayload:ws2_32.dll /delayload:advapi32.dll /delayload:user32.dll \
/delayload:gdi32.dll \
/delayload:comdlg32.dll /delayload:shell32.dll /delayload:comctl32.dll \
/delayload:ole32.dll \
/delayload:oleaut32.dll /delayload:rpcrt4.dll $(GL_LIBS_DELAY)
を6行まとめて次の1行に置換
DELAY_LOAD=
これは、dll の遅延ロード用の設定で、
delayimp.lib は、遅延ロード用のヘルパーライブラリだと思うので、問題ないはず。
ちなみに、Visual C++ Toolkit 2003 は、
ランタイムライブラリ dll 用の lib が無いので
includeディレクトリに有る use_ansi.h を下記のように変更した
//#pragma comment(lib,"msvcprtd")
#pragma comment(lib,"libcpmt")
#else// _DEBUG
//#pragma comment(lib,"msvcprt")
#pragma comment(lib,"libcpmt")
#endif// _DEBUG
#else// _DLL && !STATIC_CPPLIB
#ifdef _DEBUG
//#pragma comment(lib,"libcpmtd")
#pragma comment(lib,"libcpmt")
さらに、debug 用の static ライブラリも無いので変更
これで出来ました。
807 :
デフォルトの名無しさん :04/05/26 13:57
今日使い始めたわけなんですけど、 windowsでいうとこのSetWindowRgnって、どうやったら実現できるかなぁ? 教えてくださいませ、詳しい人!
wxFRAME_SHAPED セットした wxFrameに wxString name("hoge.bmp"); wxBitmap bitmap( name, wxBITMAP_TYPE_BMP ); wxColour color( 0,0,0); wxRegion rgn(bitmap, color ); frame->SetShape( rgn ); とか、こんな感じでできるけど、リージョンをウインドウの形にできるけど wxMDIChildFrameだと、うまくいかない。無理ってことかねぇ。
809 :
デフォルトの名無しさん :04/05/26 18:32
LinuxでwxGTK-2.4.2.tar.gzのコンパイルの際、日本語を使用可能にしよう と思った場合、configureオプションに--enable-unicodeを指定するべきな んでしょうか? --enable-unicodeを指定しなくても、setup.hには #define wxUSE_WCHAR_T 1 となっているので、指定する必要はないんでしょうか? ちなみに--enable-unicodeを指定して出来たライブラリを使って、Webから 拾ってきたとあるプログラムをコンパイルしようとするとwxStringがambiguous なんちゃらエラーになってしまいます。
>>806 サンクス。
ランタイムライブラリのlibは、自分はimpdefを使って作成しました。
msvcp71d.dllやmsvcr71d.dllはネットに落ちてたのを拾って使ってるんだけど、
ライセンス的に平気かな?
保守age
815 :
デフォルトの名無しさん :04/06/24 19:33
Borland C++ BuilderX に preview 載せて、 wxWindows をいじり始めました。 preview の出来は今1歩、いや2〜3歩か。 正式版に期待するかな。 xml パーサが日本語を通さないのが、残念なり。
>>815 UTF-8でASCII以外がだめなの?
ダメすぎ
817 :
デフォルトの名無しさん :04/06/28 19:38
wxWindowsのポーティング説明サイトキボン。 それも日本語サイト
>>817 を日本語に翻訳してくれるサイトキボン
それも日本語サイト
wxWidgets
イベントハンドリングに関する質問です 現在付箋ソフト開発中で、付箋ウィンドウを作ってます。 付箋ウィンドウはwxTextCtrl on wxPanel on wxFrame(wxRESIZE_BORDER)で作りました。 ここで問題です。 このウィンドウのクライアント領域をドラッグして移動できるようにしたいのですが、 wxTextCtrlへのイベントを横取りしてwxFrameで取得するにはどうすればいいでしょうか? 試したのは 1)wxTextCtrl派生クラス作ってOnMouseEvent()でイベント受け取る。 受け取れるけど、イベントをwxFrameに横流しするにはどうすれば? 2)wxEvtHandler派生クラス作ってwxTextCtrlにSetEvtHandler()する。 wxEvtHandlerのProcessEvent()をオーバーライドしたら一見うまくいった様に見えたが、 ウィンドウを閉じると「不正な処理」でエラー こんな具合ですが、正統な方法があったら情報きぼんぬ
>>820 wxTextCtrlのイベントハンドラから、
wxFrameのインスタンスにはアクセスできない造り?
wxのイベントモデルから言えば2じゃないかな。 ウィンドウを閉じると「不正な処理」というのは回避できそうな気がする。
>>820 wxMouseEvent : public wxEventだから親へ伝播しないわな。
>>821 の言う通りなんだったら自分で伝播させんとな。
src/common/event.cpp:884〜の
bool wxEvtHandler::ProcessEvent(wxEvent& event)
は参考にならんかい?
ちなみに2.5だったらこっち
wxEvtHandler::ProcessEventIfMatches(const wxEventTableEntryBase& entry, wxEvtHandler *handler, wxEvent& event);
wxWidget用のRADとかないの? Eclipseでそういうのあったら最強くさいんだが
またまた820です。今度は別の問題へるぷみー 付箋ウィンドウ(wxFrame派生クラス)のスタイルをwxRESIZE_BORDERにすると、 wxTextCtrlが描画されない問題あり。 描画されたウィンドウをマウスでリサイズすれば描画されます。 でも表示直後に描画されないのです。 ※スタイルをwxDEFAULT_FRAME_STYLEにすれば最初から描画されます。 子ウィンドウのwxTextCtrlに対してRefreshとかEnableとかSetSizeとか やってみましたが、解決に至らず。 どうしよう?
820です。 自解しました。 付箋ウィンドウ(wxFrame派生クラス)のShow()をオーバーライドして その中でSendSizeEvent()してやったら描画されました。 なんか、質問すると解決する。そんなもんですかね。 P.S. wxWidgetsって使いやすい。サンプルも豊富でドキュメントもしっかりしてて。 MFCよりずっといいね。って今は.NETの時代?
>>827 wxMSWだとpublic wxWindowなオブジェクトのSizeEventは
最初に表示(Show)された時ではなく、生成された時(Create)に発生する。
だからMyApp::OnInit()でnew,Showする順番が重要。
> なんか、質問すると解決する。そんなもんですかね。 そんなもん。というより 1.質問を書く 2.どういう返事になるか想定する(○○はどうなってる?) 3.出す前に調べる 4.さらなる突っ込みを想定しつつ1or2へ戻る。 というプロセスを繰り返すと大抵の質問は出す前に解決してしまうよね。
>> 809 私は FreeBSD-5.2.1 ユーザですが,misc2.cpp の JoyStick::GetProductName() の デフォルト値 「(const char) ""」を wxString にキャストできないのが 原因で ambiguous うんたらエラーになっていました,該当部分を wxString("", strlen(""))に置き換えてコンパイルしたら通りました. 試してみてください.
831 :
名無しさん@そうだ選挙に行こう :04/07/11 14:22
UNIX の雑誌に wxWidgets の記事が載っていました。 立ち読みだったので、誌名は、覚えていません。 その記事に、wxWidgets のコードを自動作成してくれる RAD のような、ソフトウェアの紹介があります。
>>831 SoftBankのUNIXUser。記事の良し悪しわ分からないけど・・・
書いてる人はNamazuのひとだねー。 zphotoのWindows版を作る時に使ったみたい。
マイナーバージョンが一個増えてるけど翻訳サイトはそのままか
翻訳サイトは3ヶ月くらい進んでないんじゃないの
>834,835 スマヌ、死んでます。別のプログラム(Wiki)で四苦八苦しているのよ。 #うまくいけば翻訳サイトに使うつもりなんだけど…… 他のメンバーも忙しいみたいだし。
>>836 乙。
Wikiはツリー構造を実装したメニューがあればリファレンス向きだよね。
JavaのAPIリファレンスのような感じなら。
838 :
デフォルトの名無しさん :04/07/13 02:20
ところでwxPenってWindowsで言うところのジオメトリックペンしか無いですよね コスメチックペンとか使いたいんですけどwxでは基本的にサポートしていませんか?
おはようございます。 死者2号どす。
840 :
デフォルトの名無しさん :04/07/15 12:08
wxWidgets の Gtk 版を使っていて、 環境変数 LANG が ja_JP のときに、 [No font for displaying text in encoding 'Extended Unix Codepage for Japanese (EUC-JP)' found. Would you like to select a font to be used for this encoding (otherwise the text in this encoding will not be shown correctly?)] というダイアログがいつもでて困ってるんだけどどうしたらいいかなあ。 FAQ かもしれんけど佐賀市型が悪いのか google ってもわからないので 教えてくださいませ.
wxGladeというのは使えるものなのですか? 雛形を生成してくれるようですが
sampleの中のファイルが所定の位置からずらすとコンパイルできない。何故だろう・・・ includeもlibも設定してるはずなんだけど
質問です。 以下のようにframeとscrwinを仮定します。 wxFrame frame; wxScrolledWindow scrwin; この状態で、 frame->Reparent(scrwin); scrwin->SetBackgroundColour(何らかのwxColour); scrwin->Refresh(); とすると、scrwinの背景は所望の色になるけどframeの再描画が中途半端になります。 中途半端とは、frameの枠は描画されるけど、中身は描画されない。 何とかなりませんかねぇ。
845です。
問題はけっきょく未解決ですが、とりあえずは別のアプローチでしのいでいます。
ですが、情報頂けるとありがたいです。
さて、別の問題が発生しました。
wxTreeCtrlのアイテムについて、日本語表示に問題ありです。
日本語を表示させようとすると、アルファベットに変わって表示されます。
まだ、詳しく調べていませんが、情報あったらくださいな。
>>843 コンパイルオプションとか、エラーの内容とか詳しく書かないと無視されるよ
>>846 むしろ君もです。プラットフォームくらい教えてくれよ。
ところでどうしてframeをscrolledwindowの上に貼り付けたいの?
>>847 >プラットフォームくらい教えてくれよ。
失礼しました。
プラットフォームはWindowsXP Proです。
>ところでどうしてframeをscrolledwindowの上に貼り付けたいの?
それは秘密。そういうアプリを作りたいから。
ということで、よろしくお願いします。
845です。 846で言ったwxTreeCtrlの日本語に関する話ですが、wxTreeCtrl自体に問題はありませんでした。 直にwxTreeCtrl::SetItemText()やったらうまく表示されました。 問題はwxTextCtrlの方にあるようです。 wxTextCtrl::GetLineText()で取得されるテキストに問題があるようです。 他のメソッド、例えばGetRange()とかGetValue()で取得するテキストには問題ありませんでした。 これはwxWidgetの問題なのか、回避できるものなのか、どうなんでしょう? ちなみに文字コードはSJISです。
「問題はありませんでした」「問題があるようです」 その文章読んでもどこに問題があるのかさっぱり分からんが。
×どこに問題があるのか ○何が問題なのか
>>848 何をしたいのかを聞きたいんじゃなくて、
Frameの上にScrolledWindowじゃなくてその逆なのはなんで?ってこと。
MDIぽくしたいのならwxMDIClient/ParentWindowがあるでしょ。
いずれにせよ、説明が情報不足過ぎて再現テストコードすら書けないよ。
wxTextCtrlの問題も同じ。例えば「TextCtrlに入力した文字列をGetLineText
で取得して、TreeCtrl上でSetItemTextして表示しようとしたら文字化けした」
とか、やりたいことを秘密にしたままでも書きようはあるでしょ。
今のところ「よーわからん。Unicode版使ったら?」とか、
「
ttp://www.geocities.co.jp/SiliconValley-Cupertino/8526/wxWindows/japanese.html にあるようにロケールの設定をしましたか?」くらいしかコメントしようが
ないよ。
845です。
■Frameの上にScrolledWindowを乗せるのはなぜか?
もともとFrame(Frame Aと呼ぶことにする)としてデスクトップに生成されたウィンドウを、
別のFrame(Frame B)中のScrollWindowに取り込み、その後、もう一度デスクトップ上にFrame Aを戻す、
という動作を実現したい。「MDIぽくしたい」というわけではない。
(もちろん、Frame B 中のScrollWindowに Frame A が取り込まれている状態はMDIのような
状態になる。)
■wxTextCtrlについて
例えば「あいうえお」という文字列をwxTextCtrl中に書く(ウィンドウとして生成されたwxTextCtrlに
キーボードから文字入力を行う)。その文字列をwxTextCtrl::GetLineTextを使用して取り出し、
wxLogMessage()で出力すると「BDFHJ」(半角)と表示される。
wxTextCtrl::GetValueあるいはwxTextCtrl::GetRangeで取得した場合、wxLogMessageの出力結果は
「あいうえお」と正しく表示される。
※wxLocaleについて
wxLocaleオブジェクトを
http://www.geocities.co.jp/SiliconValley-Cupertino/8526/wxWindows/japanese.html にしたがって生成した。
static wxLocale theLocaleObj(wxLANGUAGE_DEFAULT);
しかし、上記の「wxTextCtrlについて」で述べた文字化けは起きる。
------------
以上です。
UNIX USERの記事に日本語翻訳プロジェクトとして紹介されていたよ。
794ではないのですが、私もライセンスについてよくわかりません。
商用でスタティックリンクしたい場合、具体的には何をすればいいのでしょう?
>>795 にあるライセンスを読むと、商用ですのでもちろんソースコードは公開できません。
よってwxWindows Library Licenceということになるかと思いますが、
1.まずFree Software Foundation, Inc.にメールをだして許可をもらう。
2.そしたら自由にバイナリを販売可能
ということでしょうか?
許可をもらう方法っていうのがまたよくわからないのだけど。
こんなところで聞くような奴は使うなよ。 あれを読んで理解できない奴が判断すること自体、商売としてはリスク大きいだろ。 それともここでどこの馬の骨とも知れない相手にOKと言われたら安心するのか? マジレスすると FSF相手にそういうイシューがメールでOKと思っているというレベルでアウト。 米国法に詳しい弁護士を代理人として頼んでFSFに行き、英文で契約書を作成す る必要がある。
FSFにメール出す必要なんて無いんでないの? wxWidgetsのライセンスは、LGPLとほぼ同じ。 で、LGPLのライブラリを使った場合の主な注意点は、 ・リバースエンジニアリングを禁止できない ・ユーザーがライブラリを入れ替えられるような手段を用意しなければならない だと思ってるのだけど。 スタティックリンクした場合は、後者の理由により、ソースコードの開示は必要 ないが、オブジェクトの開示が必要になる。 ってことでOK?自信無いが。
ネタニマジレスカコワルイ
例外2の意味を好意的に解釈すれば、バイナリにしたものであれば、自分の好きな条件で 販売だろうとなんだろうとすることができる、ということでいいのかな。 wxWidgetsのHPをみると、商用ソフトも結構あるみたいだし。 これで多くのWindows用ソフトがマックに移植されたら、マックユーザーにとっては朗報ですね。
言葉の使い方間違ってるぞ。 そういうのは「好意的に解釈」でなく「都合良く解釈」するという。
>>857 混乱の元は
>>795 の
> LGPLに従うなら、成果物を再配布するときにソースコードも一緒に再配布する必要がある。
だね。明らかに間違ってる。LGPLの場合、こんなことする必要はない。
もっとも、GPLの場合でさえ、成果物の再配布時にソースを添付する必要は無い。
ソースにアクセスする手段を提供しさえすれば問題無い(ソースを置いてあるFTPサイトの
リンクをドキュメントに書いておくなり、ソース請求用はがきを添付するとか)。
>>863 > もっとも、GPLの場合でさえ、成果物の再配布時にソースを添付する必要は無い。
> ソースにアクセスする手段を提供しさえすれば問題無い(ソースを置いてあるFTPサイトの
リンクをドキュメントに書いておくなり、ソース請求用はがきを添付するとか)。
GPLとLGPLではちょっと異なっているので、まずGPL(ver.2)から。
ソース請求用はがきはSec.3のb)を指しているのだと思いますが、
a written offer, valid for at least three years, to give any third
party, (以下略) なので、
ソース請求用はがきなら購入から最低3年はソース提供を保証しないといけないし、
だれにでも(to any third party)出す必要があります。
そのはがきしかダメとか登録ユーザしかダメとかは言えません。
ftpサイトのURLを提示、はb) を指す場合(自サイトで公開)と c)を指す場合
(自分では手を加えないものの本家開発元URLを提示など)が考えられますが、
前者とすればソース請求用はがき同様の縛りがあります。
後者は非商用製品限定、しかもソース提供方式にb)項を利用して自分自身がバイ
ナリ提供を受けた場合限定です。
具体的には、オープンソースソフトでGPL/LGPLなライブラリを使用し、
しかもそれらを自分でビルドしたのではなく他所で用意されたバイナリパッケー
ジを利用した場合、に限定されます。
なおバイナリ配布がオンラインの場合、それと同じ場所で同様にソースを配布す
ることで要求を満たすと見做すことが可能です。
(続き) 次に LGPL ですが、 LGPL(v2, v2.1とも)では、ライブラリそのものの派生物については明確にソース 同梱を要求されます。 ただしそのバイナリ配布がオンラインの場合に、それと同じ場所で同様のアクセ スによりソース配布することで要求を満たすと見做せることはGPLと同じです。 LGPLなライブラリをリンクするプログラムの場合、次のどれかが要求されます。 a) 静的リンクの場合、ライブラリの全ソースコード、プログラム側のオブジェ クトファイルかソースコードを提供して再リンクできるようにする b) 動的リンクする (動的リンクしたライブラリ自体には前述の項目によって ソース同梱が要求される) c) GPLのSec.2 b)と似た、最低3年以上のa)で指定されたものの提供オファー。 ただしGPLと異なり、"give the same user the materials"と書いてあるので ユーザ以外に提供しなくても許されます。 d) a)で指定されたものをバイナリ配布と同じ場所・同じ方法で配布 e) a)で指定されたものをユーザが既に持っていることが確実 (なんだそりゃ) また、プログラムに著作権表示させる際に、ライブラリの著作権表示とLGPLへの リンクを同時に明示することも要求されています。
(さらに続き)
wxWidgetsのライセンスは、LGPLを元に、例外としてこれらのバイナリ配布に対
する要求を免除したものと思えばいいです。
他にも条文はありますので、GPL/LGPLでは何が要求されているか、
自分で一度きっちり読んだ方がよいと思います。
なお、一点訂正しておきます。
>>864 ×具体的には、オープンソースソフトでGPL/LGPLなライブラリを使用し、
○具体的には、オープンソースソフトでGPLなライブラリを使用し、
ありがとうございます。 GPL/LGPLについては大体わかるのですが、wxWidgetsライセンスがどういうふうに適用されるのかが なかなかわからなくて。 特に例外という部分が。 試しにwxWidgetsのHPにリンクしてあった商用ソフトのMojoWorldというソフトのデモをインストールしてみました。 まず、wxWidgetsで作ったという記述は見つかりませんでした。 もちろんソースも添付されていません。 インストールされたフォルダをみると、独自拡張らしきwxmojo.dllというファイルがありました。 つまり、独自拡張したバイナリを添付し、ソースも添付せず、ライセンス表示すらしなくてもOKということになるのかな? ほかのも見てみます。
好きな条件で、っていうのはそういうことです。 バイナリ配布のときの要求がのきなみ免除されるので、 ソースをつけなくていいしライセンス表示もことさら出す必要もありません。 と私は判断しますが、商用に使うならここで聞いたことを根拠にしたり、ほかが そうしているからそれでOKというタコツボ的判断は駄目でしょう。 自信がなければwx-usersに入ってメールで聞いてみるべきではないですか。 作者本人が答えてくれるでしょう。
>>869 GJ!一番痒いところに触れてくれましたって感じだね。
>>869 ありがとうございます!
これで安心して作業に入れます。
でもQtとかのライセンスは平行して使われるわけだよね? WinやMacはwxWidgetsのライセンスでソース非公開が可能でも wxWidgets/Qtが商用でもQtのライセンス購買の義務がなくなるとは思えないのだが。
それは当然です。あくまでwxWidgets部分だけ。 UNIX用にはwxGTKを使って、GTK部分はLGPLなライブラリとして添付するしかないでしょうね、お金持ちでなければ。
>>845 ■Frameの上にScrolledWindow
FrameA の上に貼っておいた内容を、MDIParent の上に作った MDIChildFrame
の上に Reparent して、FrameA を消せば同じような操作感を得られませんか?
■wxTextCtrlについて
Unicode版を使っているかぎり再現できませんでした。GetValue/GetRangeは
Win32 API の EM_GETRANGE メッセージを、GetLineText は EM_GETLINE を
使うので、違いがでるのはそのせいかも。
wxGTKそのもののソースが公開されてるなら wxGTKのsoにリンクする分には何の障害もないってことかな
>>717 失礼。ソース公開(Gtk+)かライセンス費用(Qt)が必要。
wxWidgetsがGtk+を完全に動的リンクでラップしてる場合なら自由が効くかも。
誤爆った。失礼。
gtk+もGPLだったっけ?
誤爆か・・・orz
いやLGPLだが、ライブラリのソース公開と、リンク場所のソースかオブジェクトは見せんといかんでしょ。 wxWidgetsが完全にラップしてくれてるなら、そっちを見せれば後は自由なのか それともそのコードにアクセスしてる全てのソースorオブジェクトを公開しなきゃいけないのかが知りたかった。 前者ならGtk+を動的リンクしてる限りは何の制限も受けんでいいなと。
>>874 アドバイスありがとうございます
>frame->Reparent(scrwin);
>scrwin->SetBackgroundColour(何らかのwxColour);
>scrwin->Refresh();
>とすると、scrwinの背景は所望の色になるけどframeの再描画が中途半端になります。
これについては、この問題そのものは解決できていませんが、ウィンドウの別の部分の
色を変化させることで対処しました。
>■wxTextCtrlについて
Unicode版ならば大丈夫なのですね。Unicode版にするとWin95を見捨てることに
なりますが、今時そんな問題はなさそうですね。
どうもありがとうございました。
メーリングリストがウィルスばっかで参った参った。
883 :
デフォルトの名無しさん :04/08/02 14:15
>>883 うわっ、マジですごいかも。
ボーランドも最後の力を振り絞ったな。
ってVCLがあるのに・・w
これって去年の11月のものを今頃うpしたってことですか?
正直xyzzy+mingwでお腹いっぱい
MFCをラップするwxMFCみたいのを書いてます。 でもMFCを書き換えたものなので配布できないよなぁ。 他にやったことある人いますか?
>>888 MFCを書き換えたんなら配布はムリだろうが、MFCをラップしたんなら
配布できるだろ。
WXDEBUG_NEWってwxObject派生クラスしか使えないの?
gettextっぽいのがついてるけど、これって独自実装だよね? そうじゃなかったらGPLになってるか…。
GNU gettextのうちlibintlはLGPLだと思ったが、それはそれとして、 自前で実装してるよ。
>>892 サンクス。
ところでwxWidgetsの話ではないんだけど、
gettextのpoでShiftJIS使うとき、「表\示」とかエスケープしたら怒られるようになった。
なんでだろうと思いつつ「表示」としてみると普通にmoができて、
それを食わせたプログラムでもちゃんと文字化けしないででてきたわ。
これでいちいち気にしなくて済むかのぉ。
894 :
デフォルトの名無しさん :04/08/20 03:24
そろそろ、インスコ方法とかまとめない?
では叩き台をどうぞ。
_, ._ ( ゚ Д゚) ・・・ _, ._ ( ´ Д⊂ ゴシゴシ _, ._ ( ゚ Д゚) ・・・
スレッドのサンプルがthreadの実行中にアプリケーションを終了すると ハングするんで調べてみたら、 Delete()メソッドってスレッドが終了するまで制御を返さないんですね。 いちいちwxConditionとか使ってシグナルを待機する必要なかったのか。。
898 :
デフォルトの名無しさん :04/08/21 20:05
やってみたいけど、エラーインストールの方法がよく分からないんです。 どうすれば、いいんですか? VC .NET2003 でつ。
エラーインストールって何かよく分からないんです。 それは、何ですか?
エラーをインストールするんですけど?知らないんですか?
はつみみです。
自分で調べて試行錯誤したほうがためになります
2.6.0 Stable 1/9/2004 - WX_2_6_0 This will be a stable release, hopefully with full XTI (extended RTTI) coverage. あと1週間〜♪
904 :
デフォルトの名無しさん :04/08/26 16:30
ほしゅのひょーん
stock buttonsの議論がなかなか収まんなくて。 ようやく結論めいたものが出てきたが。 んで次に出るのは2.5.3で、2.6は十月までお預けだとか言ってるような。
Windows用に作ったアプリケーション(wxWidgets2.4.2)を、 Linux上(wxWidgets2.5.2 Gtk2 Unicode)でコンパイルしようとしています。 コンパイル自体は通るのですが、 例えば、以下のようなコードを含んでいると、 wxMessageBox( wxString::Format(_("hogehoge %s"), _("hoge")), _("Test"), wxOK NULL); 下のような警告がでて、 警告: cannot pass objects of non-POD type `class wxString' through `...'; call will abort at runtime 実行してみると、このダイアログを表示するところでsegmatation faultを起こします。 wxMessageBox( _("hogehoge hoge"), _("Test"), wxOK, NULL); のように直接リテラルを渡した場合は、警告もでず、問題無く動作するのですが。。。 いったいなにが問題なのでしょうか? ポインタだけでも示していただけるとうれしいのですが。。 環境はg++3.3 wxWidgets2.5.2で、--enable-gtk2 --enable-unicodeにてコンパイルしてあります。
%sにはwxStringじゃなくてwxChar*を渡す
>>907 ありがとうございます。
おれってすごいバカなのでは。。これで2時間も考えこんでました(;´Д`)
帰ったらさっそく試してみます。
wxWidgets と wchar
ttp://diary.imou.to/~AoiMoe/2004.09/middle.html#2004.09.13_s02 >>892 libintlがLGPLになったのは0.10.40から。割と最近の話だな。
>>893 0.10.36からUCS normalization化されて、Shift_JISとかBig 5なども
普通に取り扱えるようになってる。「\」を入れたpoを使う場合には
環境変数OLD_PO_FILE_INPUTを設定する(これはまともに文書化されて
なかったような)。ただ最近のGNU gettextでも有効かどうかは知らん。
ところでwxWindows日本語プロジェクトって放置プレイ状態?
Webは更新されてないし、MLアーカイブにはspamが入っているし。
>910 ごめん、放置プレイ。 C++離れてRubyでWiki作ってまつ。なかなか完成しません。 wxRubyでも翻訳しようかな……
お兄ちゃん、日記に愚痴書いてるだけじゃなくてパッチ投げてよ……。
wxRubyで任意のメモリ上のイメージを表示するにはどうしたらいい? Image、Bitmapのオブジェクト(wxだとヴィジェット?)は作れるんだけど表示のさせ方がわからない…○| ̄|_
wxRubyなど使ってないから知らん。 素のwxWidgetsの知識でよければ、wxBitmapはそのまま貼れたはず。
画像と同じサイズの wxEmptyImage を作成して, SetData() でrgb のデータ列を突っ込んでみたらどうかな.
遅レスすまん
>>914 ,915
レスthx
表示する方は試行錯誤繰り返していたら何とかなってきました。
メモリ上のイメージの表示はset_data()でできました。
ステータスバーにプログレスバーを表示させるってどうやったらできる?
Rubyスレから誘導されて来ました wxRubyなんですが、イベントをトリガーにして画像を書き換えて表示したいのですが画面が書き換わってくれません 現在はおおざっぱにこんな手順になっています。 1) イベントを捕まえる 2) 書き換えたいオブジェクトのDCを生成 (PaintDC) 3) 書き換えるBitmapオブジェクトのDCを生成 4) 3で用意したDCをblitで2で生成したDCにCOPY 5) 2で生成したDCを解放 コードを実行した最初のMyFrameの初期化時には画像は表示されるのですが、ボタンとかツールバーのイベントから 上記の手順を実行しても画面に反映されません。 いったんウィンドウを他のウインドウで覆ってから再度アクティブにしてPAINTイベントを発生させると画面に反映されます。 何か肝心な手順が足らないと思うのですが何が足らないのでしょうか? wxWidgetsを使うのは初めてだったりするので使い方が間違っている用語とかあったらゴメン
イベントが任意のイベントだとするとwxPaintDCを使うのは間違い。
レスありがとうございます。 wxWindow::Refreshで画面を書き換えられました。
ListEventが発生していないときにListCtrlの現在選択されている項目の場所を取得するにはどうしたらいい?
wxListCtrlは複数選択を許す C++では多値を返す枠組がない のでそのものずばりのメソッドはない。 状態を持つようにするか、ループで一つ一つ調べれ。
FileDialogって、最後に開いたディレクトリを覚えているようなんだがどこに記憶しているんだろう? それともwxRubyのみの挙動なのか?
wxConfig
ロードマップが修正されたよ
http://www.wxwindows.org/roadmap.htm 2.5.3 Development 17/10/2004 - WX_2_5_3 This will hopefully be the last unstable release before 2.6.
2.6.0 Stable 1/12/2004 - WX_2_6_0 This will be a stable release.
本当にちゃんと出るんだろうか。意地でもクリスマスには間に合わせそうな気も するが、現状wxgtkとか結構ダメだしなあ。
wxRubyで日本語を表示させるときに使用する文字コードって プラットフォームによって変化したりする?それとも共通? とりあえずWin2000Pro上ではSJISじゃないとダメなようだが…
>>929 LinuxだとEUCみたいですね
wxPerlでしか確認してませんが
>>930 thx
げふっ…ソースコードの使い回しをするのはかなり大変そうだな…○| ̄|_
言語リソース分離したらいけない?
ユーザが使うlocaleの設定によって違う。
UNIXだと多くの人はEUCだけど今はUTF-8の人も少しいて、
そのうちそういう人が増えるかも知れないし、
UNIXでもSJISを使ってる人や環境もあることはある。
従って特定の文字コードでソースに埋め込むということ自体があまり正しくない。
C++のソースコードと同じように _T() という関数で全リテラルを括るようにし
て、_T()ではuconvでも使ってスクリプトファイルの文字コードからlocaleに合
わせた文字コードに変換する、とするのがいいんじゃないか。
一番いいのは
>>932 のいうように分離する方法だけどね。
Rubyにもgettextあるんだし。Rubyのgettextはどうか知らないが、wxWidgets
が自前で持つgettextはメッセージカタログが違う文字コードで書いてあっても
自動で変換してくれるから、C++の場合は言語で分けさえすれば後はあまり考え
なくてよかった。
一番手抜きなのはユーザが適宜自分のロケールに応じた文字コードへ変換して
それをインストールしてくださいというもの。ただしインストールするソフトを
マルチユーザが共有することを考えてない糞方針でもある。
wsWindowsというよりは、Rubyの仕様の問題だよな。 実行環境とスクリプトのlocaleを一致させなければならないんだろ。
931の名前欄間違えた…○| ̄|_
>>932-933 レスthx
言語リソースを切り離す方法と前リテラルを関数で変換する方法を検討してみます。
>>934 そんなことはないと思うけど…
mswinなインタプリタでも日本語がUTF-8なスクリプトでもちゃんと走るし
出力時にSJISに変換すればコンソールへも正常に表示できるけど…
>>933 wxWidgetsはlibintlに相当する部分を自前で持ってるみたいだから、
細かいことは気にしなくてよさそうだけど。
Unicode板使って,Ruby側で文字コードの違いを吸収したらどう?
Ruby側というのがいまひとつ不明瞭だけど、wxWidgetsのunicode版を使うには ワイド文字列にして渡さないといけない。 Rubyから渡された全文字列についてwxRubyがMB2WXやってくれているならそれでOKだが、 今の実装がそうなってるかどうかはwxRuby使いでない俺は知らない。
やべえ。bin/lifeがはまる。
wxRubyのImageってバグ持ちか…? イマイチ発症条件が絞り込めていないのだが 頻繁に書き換えてあるImageオブジェクトをしばらくさわらず 別の場所でガンガン処理をしたあとに利用(Image#copy)しようとすると wxRubyがクラッシュするような… しょうがないので原始的な方法だがクラッシュしそうな箇所の 手前でImageオブジェクトを再生成している
バックトレースきぼん
>>942 Winのプログラミング経験もほとんど無い俺にはムリ…
>>944 Win2000Pro(SMP)、Ruby 1.81、wxRuby 0.5.0
WinXP Pro、Ruby 1.81、wxRuby 0.5.0
どっちでも症状が出ます
サイザーって片仮名で書かれるとかなり間抜けだな。
> wxWidgets には次のような制約があるからである。 > > * ボタンやラベルなどのほとんどの部品はサイザーの上にしか乗らない。 ?
聖帝
この記事より既にwebにあるページの方がよっぽどましだねえ。 こうして適当な事書き飛ばして評価を下げていくんだな、と思った。
これが横着プログラマの限界か。
ひとまず次スレ案 【GUI】wxWidget(旧wxWindows) その2【ツールキット】
前が「のひょーん」だったから次は「はにゃーん」きぼんぬ。
聖帝を愚弄するな
【GUIライブラリ】wxWidgetsではにゃーん 2
愛を!もっと愛を!
よく考えたらwxWidgetsなんだよな ~ 952のには"s"が足りない
【聖帝】GUIライブラリwxWidgets その2【サイザー】
サイザーってどっかの雑誌みたいだな
聖帝はサイザーではなくサウザーですよ
サイザーは大鎌持った金髪美女のほうだ
notus が、なかなか使えるようにならないね〜。 boost とかに毒されてきて、もう wxWidgets が気持ち悪くてたまらん。
モダンなC++のスタイルで書きたいってのはある オフィシャルでそういうラッパーみたなのあっても いいんじゃないかな? で、ゆくゆくはレガシーなスタイルなほうがラッパー経由 になるみたいな
wxRubyのMyFrame内部でraiseがArgumentErrorになってしまうんだが仕様か?
【月刊】GUIライブラリwxWidgets その2【サイザー】
スレタイにwxWindowsも入れないと過疎化しちゃうぞ
wxWindows の検索結果のうち 日本語のページ 約 1,790 件 wxWidgets の検索結果のうち 日本語のページ 約 900 件 微妙なところだな…
【悲しき】GUIライブラリwxWidgets/wxWindows その2【聖帝】
【GUI】wxWidgets(旧wxWindows) その2【ツールキット】 でいいじゃん 「ツールキット」で検索する人もいるかもしれないし GUIライブラリには違いないけどね
Google的にマルチプラットフォームも入れたいが、ちょと長くなってしまうな。
サイザーは是非とも入れてほしい。
Fedora Core 2のC++で使っている人いませんか? wxWindowsのインストールをどうやったのか、教えてください。
apt
>>981 Fedora Extrasに入ってるじゃん。
>>981 この程度のことすらできんやつがプログラムなんかできるのか?本気で疑問だ。
まぁ誰もが最初は初心者だ
>>974 適当にながめて見たけど、モダンって言うよりか、
なんとなく90年代っぽいな〜、なんて思ってみたり。
フェミニーナ軟膏 → 【う】
うめ
めかぶ
梅
生め
うめ
あ、終わってもうた
先着一名様に1000ゲットの権利↓
ほ、ほーっ、ホアアーッ!! ホアーッ!!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。