03/09/20 14:29
>>449
素早いお返事ありがとうございます。
しかしその方法ではMyWindow::OnSize内でthisは使えませんよね。
…というかそもそもイベントハンドラ内でthisは使っちゃいけないんでしょうか。
だとしたら俺すごいあほですね。。。
451:466
03/09/20 16:05
すいません。どうやらwxPanel自体がそういう仕様のようです。
つまりwxPanelに載せたオブジェクトはwxFrameに載せた場合と異なり、
明示的に指示しない限りリサイズされないようです。
MyWindowの代わりにwxButtonで確めました。
結局MyWindowの使用者は、wxPanelに載せる場合wxPanel#OnSizeから
ProcessEventでMyWindow#OnSizeを呼び出してあげるのが正攻法ということでしょうか。
自己レスですが、
>イベントハンドラ内でthisは使っちゃいけないんでしょうか。
いいみたいです。でもConnectで異なるオブジェクトから接続すると
thisが変わってしまいますのでやらない方が無難です。
代わりにwxWindow#PushEventHandlerが使えるような気がしたのですが
OnGtkだと正しいthisで呼び出された直後にSearchEventTableの中でセグってしまいます。
(サンプルではPushEventHandlerは同一クラス内でしか使用してない)
こういう使い方をするものじゃないかもしれません。
452:の
03/09/20 17:51
>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を動作させるには、だったりして。
454:の
03/09/23 01:20
URLリンク(www.wxwindows.org)
にwxMicroWindows projectについての記載があるけれど……まだまだみたいだね。
# まだ生きてるのかな? 活発な印象は受けないけど……
455:の
03/09/23 01:41
2.4.2がリリースされましたな。
バグとりが中心のようです。
456:デフォルトの名無しさん
03/09/23 14:09
>>454
wxMicroWindowsでDOS動作なんだー。
まだツカテナイケド便利。
457:の
03/09/23 14:42
最近だとwxEmbeddedというくくりになってますな、Microwindows
URLリンク(www.wxwindows.org)
興味ないからあまりトレースしないけど……
458:デフォルトの名無しさん
03/09/23 17:27
起動時に既にそのアプリケーションが起動しているかどうか調べたいんですが
どうすればいいのでしょう?ポインタだけでもいいです。
あと、もしそれができるのであれば、WindowsのPostMessageのように
その既に開いているウィンドウに通知したいのです。宜しくお願いします。
459:デフォルトの名無しさん
03/09/23 17:32
質問ばっかりでアレなのでちょっとした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:思兼 ◆l3iwkTImVo
03/09/23 18:53
>>458
プロセス間通信までしたいのなら
URLリンク(www.wxwindows.org)
同じアプリが動いているかどうか確かめるだけならこっちのほうが楽
URLリンク(www.wxwindows.org)
結局日本語化はBorlandがやってくれるのかな?プロコンまで3週間切ったけど,どうせ
漏れが翻訳してもBorlandみたいな企業が使ってくれるようなドキュメントにならないと
思うのだが.
それよりはEclipse用にwxWindowsプラグインでも作ったほうが良いかも.まぁEclipseは
CDTがまだ使い物にならないけどね.
461:デフォルトの名無しさん
03/09/23 20:00
>>460
ぐはっ!wxSingleInstanceCheckerってそのまんまの名前ですね。ありがとうございます。
日本語訳あるかどうか見に行こうとしたらメンテナンス中だって言われてしまった。
462:灰@もっぱらPerler, C++に戻りたい… ◆v/.u/aNe9w
03/09/23 23:38
日本語プロジェクトのお話スマソ。
>>460
> 結局日本語化はBorlandがやってくれるのかな?プロコンまで3週間切ったけど,どうせ
どうやら、C++BuilderXはC++Builder6の後継開発環境臭いですね。
Kylix的位置付けなら英語マニュアルしかないのも考えられるけど、
日本語のマニュアルが今まで付属していた既存パッケージの後継であれば、
当然のように日本語圏用のパッケージには日本語マニュアルが付属する可能性は高いッス。
むむむ。
しばし、静観するしかないですな。
時期を見てボーランドに問い合わせでもしてみるべ。
wx340.html 翻訳してもいいかしら?
463:デフォルトの名無しさん
03/09/24 01:43
>>460
>漏れが翻訳してもBorlandみたいな企業が使ってくれるようなドキュメントにならないと
>思うのだが.
そのあきらめのよさは一体・・・
せっかくなんだからBorlandにコンタクトとってみたら?
多分外注に一括して翻訳依頼出すんだろうから
逆に翻訳予定のないところを聞いてそこから手をつけるとか。
464:デフォルトの名無しさん
03/09/24 02:03
某はwxWindowsのドキュメントのみをフリーで公開する気があるんだろうか。
personalとは別にドキュメントだけで。
465:デフォルトの名無しさん
03/09/24 03:32
それはない。
466:灰 ◆v/.u/aNe9w
03/09/24 08:54
ヤフー!
SFメンテ中でまだ読めませんが、
wxSingleInstanceChecker の翻訳ageますた!
>>463
そうですね、早めに問い合わせしてはっきりさせた方が、
無駄がなくてよさげですね。
>>464-465
> Rest assured that Borland is adapting itself to wxWindows' open source nature,
がどこまでを意味しているかですね、むむむむ。
467:灰 ◆v/.u/aNe9w
03/09/24 09:07
ボーランドへの問い合わせのタイミングは、
日本法人からのC++BuilderXかwxWindowsに関する正式発表がでたあたりかな。
今のところ、それらの名前は一切出てないみたいですから、
今問い合わせしてもフライングかと思われ。
468:デフォルトの名無しさん
03/09/24 21:55
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ファイルが見つからないというようなエラーでコンパイル止まるのはどういうわけなんでしょう…
独自にパスを通さなきゃいけないんですかね
469:デフォルトの名無しさん
03/09/24 22:07
まずは大人しく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
470:思兼 ◆l3iwkTImVo
03/09/24 22:42
>>468
いちおう確認.バッククォートって知ってる?
wx-configはバッククォートでくくってgccにオプションを渡して使う.
あと,INCLUDEパスには関係ない話だからそのコンパイルエラーには関係ないけど,
gccがリンクする順序の関係で,wx-configのオプションはソースファイルより後ろに
置かないといけない.
471:デフォルトの名無しさん
03/09/24 22:58
>470
レスサンクス とりあえずunix系の知識は軽くあるんで``でのサブシェル実行(って言っていいんだよな・・)は分かってる。
gccのバージョンを差し替えたり色々環境をいじり壊してたんでこの機にMinGW MSYS wx全部再インストールすることにした。
今make中です
472:灰 ◆v/.u/aNe9w
03/09/24 23:13
>>471
もし、再インストールしてもエラーが出てしまうようなら、
MSYS 環境は良くわからないが、
試しに
echo `wx-config --cppflags`
して、インクルードパスがどうなっているか見てみるといいかも。
おかしければ、wx-config はシェルスクリプトなので、
直接修正しちゃう手もアリかもしれないッス。
473:デフォルトの名無しさん
03/09/24 23:24
吐き出されたlibとincludeをみんぐーのフォルダにコピーしたら問題無しでした。バカみたい(ノД`) スレ汚しスマソ
474:デフォルトの名無しさん
03/09/25 00:30
それをしないためのwx-configなのだが・・・
475:デフォルトの名無しさん
03/09/25 01:25
>>473
環境変数WXWINをC:\wxWindowsとかにしてないかい?
みんぐーは"\"でなく"/"にしないと-Iオプションのいみないかもよ
476:デフォルトの名無しさん
03/09/25 02:03
リソース扱う物が
#error "wxr resources require PrologIO"
で止まるなぁ・・・
検索して出てくるとこも入手先書いてないし
( URLリンク(mitbates.mit.edu) )
477:思兼 ◆l3iwkTImVo
03/09/25 03:24
>>476
それはconfigureのオプションだったと思います.
confiugre --helpで,prologなんちゃらをEnableにするオプションが無いかどうか
調べてみてください.
478:デフォルトの名無しさん
03/09/25 15:30
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でいけるんですかね。
ちょっと試してみますけど明日になっちゃうので、どなたか既に情報をもっていらっしゃったらお願いします。
479:デフォルトの名無しさん
03/09/25 19:24
>>478
XRCはXMLパーザが原因で日本語通らなかったはず
Unicodeビルドしても変わらないんじゃないかな
ただwxXmlResourceはwxLocaleを設定してやれば
getopt風のメッセージ変換してくれるから
poファイル用意してやれば一応日本語は出せるよ
(Windowsでしか確認していないけどね)
中途半端な情報スマソ
480:デフォルトの名無しさん
03/09/25 21:03
>>479
> getopt風のメッセージ変換してくれるから
> poファイル用意してやれば一応日本語は出せるよ
それは gettext
481:デフォルトの名無しさん
03/09/25 22:55
>>480
半端な上に嘘書いちゃったよスマソ
482:灰 ◆v/.u/aNe9w
03/09/26 00:32
News Release
URLリンク(www.borland.co.jp)
C++BuilderX (Enterprise|Developer) 9/29 に発売。
Perlsonal 版は無償なり。
だだし、
> 2003年10月中旬より、弊社Webサイトにて無償ダウンロードサービス(商業開発不可)を開始する予定です。
らしい。
製品情報はこちら
URLリンク(www.borland.co.jp)
関連スレ: C++Builder相談室 Part7
スレリンク(tech板:219-番)
483:デフォルトの名無しさん
03/09/26 00:36
商業開発不可版のドキュメントでひたすら勉強してあとは本家をゲフゲフ
484:灰 ◆v/.u/aNe9w
03/09/26 00:43
製品情報からの引用
> C++BuilderXは、ボーランドが今まで提供してきたGUIを伴うアプリケーションに主軸
> をおいた「C++Builder」の直接的な後継製品ではありません。ビジュアルデザイナや
> ウィザードなど、従来のC++Builderで提供されてきたような機能は含まれていませ
> ん。
RADがないのか。残念。
んで、なんだかKylixと近い扱いみたいですね。
>>483
日本語マニュアルつかない予感。
485:思兼 ◆l3iwkTImVo
03/09/26 00:46
URLリンク(www.borland.com)
このデモを見ると,一応RADっぽくコンポーネントをぺたぺた貼り付けられるみたいだよ.
486:デフォルトの名無しさん
03/09/26 00:53
>日本語マニュアルつかない予感。
翻訳し放題でよかったじゃん(藁
とりあえずGUI抜きのgccの統合開発環境として使い物になればいいや。
ってスレ違いだけど。
487:灰 ◆v/.u/aNe9w
03/09/26 01:07
>>485
んじゃ、今までより機能が落ちるデザイナが付属する感じなのかな?
>>486
> 翻訳し放題でよかったじゃん(藁
蓋が開けられるまで確かなことはいえないですが、
嬉しいような悲しいような…。
本音は日本語マニュアルが付属する方がうれしいなぁ。
正直、自分の翻訳に自信ないしー。
488:デフォルトの名無しさん
03/09/27 08:22
>>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を多言語対応に書き換えようかと思っています。
このレスちょっと日本語おかしいですが勘弁して下さい。宿酔いなので
489:デフォルトの名無しさん
03/09/28 15:37
複数フレームが開いている時に、一度に全て閉じるには普通どうするのでしょうか?
例えばあるフレームで「ファイル→終了」を選んだ時です。
wxExitは緊急の時だけにしろって書いてありますし、
wxWindow#FindWindow*はidやnameが分からないので使えませんし、
wxApp#GetTopWindowは複数回呼んでも同じウィンドウを戻してくるし。。
教えてください えろい人。
490:の
03/09/28 19:33
えろい人と呼ばれて答えないわけにはいかないですね。
> 例えばあるフレームで「ファイル→終了」を選んだ時です。
アプリを終了させるのなら、wxApp::GetTopWindowでメインウインドウの
ポインタを入手してwxWindow::Closeすればいいと思う。
# wxWindow::Destroyかな?
wxApp, DECLARE_APP()も参考のこと。
491:デフォルトの名無しさん
03/09/28 20:00
>>490
レスありがとうございます。僕も早くえろい人になりたいです。
説明不足で申し訳ありませんが、複数フレームとは各々独立しているものでして、
トップウィンドウが閉じられても他のフレームは存在しつづけるのです。
つまり、全てのフレームの親はNULLなのです。
複数インスタンスを起動すればいいだけの話なんですが、
起動時に重い処理を行うためにそれを避けています。
492:デフォルトの名無しさん
03/09/28 20:53
URLリンク(wxwindowsjp.sourceforge.jp) (翻訳ありがとうございます)では、
「新しいウィンドウを作成する時には可能な限り常に親フレームを使うことを推奨する.
そうしない時は,トップレベルフレームのwxCloseEventのハンドラで,全ての子フレームを確実に破棄する事.」
とあるのですが、その「全ての子フレームを確実に破棄する」方法が知りたいのです。
全てのウィンドウのリストを保持する・・・?んー。。。
うおーーーーーできましたっ!
Sえんd
493:デフォルトの名無しさん
03/09/28 20:56
すいません。取り乱しました。。。えっと、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;
}
としたところ、うまくいきました。お騒がせ致しました。
494:の
03/09/28 21:49
おっと失礼……特殊なケースですな。
グローバル変数の wxTopLevelWindows を利用するという手もありそうですが、
ドキュメント化されていない変数を利用するのもまずいかな?
# どっかでドキュメント化されていましたっけ?
私だったら、素直にwxApp(の派生クラス)でNULL親のウインドウリストを
持つようにしますかね……
495:の
03/09/28 21:58
入れ違いですな……wxTopLevelWindows を利用しましたか。
このあたりのグローバル変数もドキュメント化してくれると助かるのですけどね
# 仕様Fixという意味からも
496:デフォルトの名無しさん
03/09/28 22:29
確かにドキュメント化されてないのは心配ですね。でも結構不変的なオブジェクトっぽいですよ。
REV:1.5以降は wx/window.h に存在してます。REV:HEADでも依然として存在しています。
URLリンク(cvs.wxwindows.org)
REV:1.4以前は各々のプラットフォーム毎に持っていたようです。
URLリンク(cvs.wxwindows.org)
URLリンク(cvs.wxwindows.org)
URLリンク(cvs.wxwindows.org)
URLリンク(cvs.wxwindows.org)
URLリンク(cvs.wxwindows.org)
つまり、wxTopLevelWindowsという識別子はwxWindowsの歴史の中で存在しなかった事はないようです。
wxWindowsのどのリビジョンを取り出しても、必ずwxTopLevelWindowsは存在します。
これからもずっとこうだと限りませんが、1998年存在しつづけているオブジェクトなので余程のことが無い限り大丈夫だと思います。
また、もし変更があった場合は toplvcmn.cpp utilscmn.cpp wincmn.cpp helpctrl.cpp app.cpp
data.cpp mdi.cpp nativdlg.cpp taskbar.cpp toplevel.cpp window.cpp app.h window.h
に一度に変更が入るため、変更の可能性は低いように思えます。
497:デフォルトの名無しさん
03/09/28 23:43
と思ったんですが、
URLリンク(wxguide.sourceforge.net)
のガイドラインでは
WX_DEFINE_ARRAY (AppFrame*, AppFrames);
で全てのフレームをApp(public wxApp)で管理していました。
のさんの言うように自前で管理することにします。どうも。
498:デフォルトの名無しさん
03/09/29 20:54
最近wxWindowsの勉強を始めたのですが、サンプルを見ると、
どれもボタンとかメニューを作るたびにIDを割り当てて、
そのIDをベースにコールバックを登録してますよね?
みなさん、そのスタイルでプログラムされてるんですか?
wxID_ANYでまかせて、GetIdを使うやり方は、将来何かまず
いことがおきるでしょうか?
ついでにいうと、せっかくオブジェクト指向なのに、なんで
IDなんていう内部情報を表に見せるようなAPIになってるん
でしょうね。
499:の
03/09/29 23:58
> 498
>wxID_ANYでまかせて、GetIdを使うやり方は、将来何かまず
具体的にはどんな感じ?
# ハンドラ内でif判定?
マクロとか使用せずに登録したいのなら、EvtHandler::Connectを使うのが
スマートだけど……どのみちIDを使用しますな。
> IDなんていう内部情報を表に見せるようなAPIになってるん
IDをメッセージの一種と考えているんでしょうね。
メンバ関数をコールバックするためにオブジェクトそのものをやりとりするよりも
効率的と判断したのですかね?
500:デフォルトの名無しさん
03/09/30 00:10
>>498
>なんでIDなんていう内部情報を表に見せるようなAPIになってるん
OnFileMenu(wxCommandFileMenuEvent) {}
OnEditMenu(wxCommandEditMenuEvent) {}
OnExitMenu(wxCommandExitMenuEvent) {}
OnOpenMenu(wxCommandOpenMenuEvent) {}
俺はこんなのやりたくないぞ。
OnCommand(wxCommandEvent) {switch (event.GetId())}
の方が素直でいい。
501:デフォルトの名無しさん
03/09/30 02:01
>>500
やりたくないって最近のGUIフレームワークはみんなそうなんだが。
拡張無しのC++だと発生したイベントとイベントハンドラOnFileMenuの呼び出しを
結びつけるのが難しいから(まさかvirtualにもできないし)wxWではやってないというだけで。
502:デフォルトの名無しさん
03/09/30 02:12
>>501
ほんとにメニューが増えるたびにクラス作るの?
まじでやりたくないな。。とりあえずSwingは違ったけど。
その最近のGUIフレームワークって何てやつ?
503:501
03/09/30 02:26
>>502
>みんなそうなんだが。
>>500の例は少し違ったな。クラスをボコボコ作るわけじゃない。
↓な感じ。
class Form1
{
OnFileMenu(wxCommandMenuEvent) {}
OnEditMenu(wxCommandMenuEvent) {}
OnExitMenu(wxCommandMenuEvent) {}
OnOpenMenu(wxCommandMenuEvent) {}
}
504:デフォルトの名無しさん
03/09/30 02:31
(´-`).。oO(なんで「MFCに似てるな」で片づけられないんだろう…)
505:デフォルトの名無しさん
03/09/30 02:41
>>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)
と何が違うん?
506:デフォルトの名無しさん
03/09/30 02:46
あ、違うか。そうしないのは何故かってことか。なんでだろ?
関数増えまくるのがめんどくさいからかな。
ヘッダにも書かないかんし。まあC++の宿命っつーか。
507:デフォルトの名無しさん
03/09/30 06:45
WideStudio のドキュドキューンさになんとも馴染めなかったので、
これはどうかと wxWindows を見てみたが、
設計古すぎ もうだめぽ
508:デフォルトの名無しさん
03/09/30 11:00
>>507
来年また覗きにおいで
URLリンク(www.wxwindows.org)
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<>.
509:デフォルトの名無しさん
03/09/30 12:23
よーするにdelegateのないC++は糞だしその上に構築されたライブラリも糞ってこった。
510:デフォルトの名無しさん
03/09/30 13:44
>>509
delegate自分で書けねーのかよ(激藁
511:507
03/10/01 00:35
>>508
おぉ
# gtkmm から早く抜け出したいので期待age.
512:デフォルトの名無しさん
03/10/02 20:27
ドキュメントかなりvirtualの間違いがあるんですけど
こういうのってどうしたらいいんでしょうかね?
報告した方がいいんですか?
virtualってドキュメントに書いてあったからオーバーライドしてはまった人より。
513:デフォルトの名無しさん
03/10/02 21:12
>>512
そりゃもちろん報告した方がいいでしょ。
514:デフォルトの名無しさん
03/10/04 17:26
どなたか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の型システムを使った
オブジェクトの生成方法のサンプルがなかなか見つかりません。
一応 URLリンク(lists.wxwindows.org) も見たんですけど何だか良く分からん(;´Д`)
何か情報があればお願いします(英語でも何かのソースでもいいです)
515:デフォルトの名無しさん
03/10/04 17:30
すいません。めちゃくちゃ間違えました
instance->GetClassInfo()->GetBaseClassName1() == wxT("wxWindow")
なのに
instance->GetClassInfo()->GetBaseClass1() == NULL
です。
516:デフォルトの名無しさん
03/10/04 21:03
>>514
おお、そんなものがあるのか。
漏れも試してみます。
517:デフォルトの名無しさん
03/10/06 00:16
イベントを兄弟ウィンドウに伝播させるには、
1.子ウィンドウAがイベントを親ウィンドウに投げて、
2.親ウィンドウが受け取ったイベントを子ウィンドウBへ投げる
としているのですが、これだと親ウィンドウが全てのイベントを
管理しなきゃいけないんですがこんなもんなんですか?
GUIアプリ作ったことないんでこれが普通なのかどうかよく分かりません。
518:デフォルトの名無しさん
03/10/06 07:20
1.子ウィンドウAが親ウィンドウのハンドルを取得する
2.親ウィンドウから子ウィンドウA,B,C,D,...のリストを取得する
3.子ウィンドウリストから必要なウィンドウをピックアップしてイベントを投げる
でも,動作すると思いますよ.
519:デフォルトの名無しさん
03/10/06 08:34
>>518
レスありがとうございます。
XRCを使っているという前提で聞いてもらいたいんですが、
「必要なウィンドウをピックアップ」とありますが、ユーザが勝手に作ったクラスの場合は
必要かどうか分からないので、結局どこかで while を使って子ウィンドウ全てに
イベントを投げる必要があるということですね。
そうすると、孫ウィンドウに送る場合はどうするのでしょう?
途中にwxPanelやwxSplitterWindowなどがはさまってしまうとそれ以上イベントが飛ばないので、
1.まず最初にトップウィンドウにイベントを投げて、
2.トップウィンドウの全ての子孫ウィンドウを再帰的に検索して
3.それぞれのウィンドウのProcessEventを呼び出す
ということをしなければならないのでしょうか。
「しなければならない」のならするのは全然平気なのですが、ちょっと不安になってしまいまして。
520:デフォルトの名無しさん
03/10/10 19:20
C++BuilderXはどうだったんだろう。
521:思兼 ◆l3iwkTImVo
03/10/10 22:03
>>520
10月半ばにPersonal版がDL可能になる・・・筈
522:デフォルトの名無しさん
03/10/10 22:03
へぇ
523:デフォルトの名無しさん
03/10/11 03:10
英語版のPersonal入れてみたけどwxWindowsは入ってなかったしRADも見当たらなかったぞ
524:思兼 ◆l3iwkTImVo
03/10/11 10:48
>>523
まぢ?
とりあえずプロコンが終わったら入れてみよう.
525:デフォルトの名無しさん
03/10/11 22:31
そういえばBitTorrentもwxWindows/Pythonなんだよね。やけに配布パッケージ大きいと思ったらライブラリが9割以上食ってた
526:の
03/10/12 13:14
> 525
DLLだと全部入りになるからデカいよね。
C++でstatic linkすると随分小さいけど……Pythonじゃ無理か……
527:514
03/10/12 23:42
>>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しないので、このようにしました。
528:514
03/10/12 23:49
(続き)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としてコンパイルします。
529:514
03/10/12 23:57
(続き)ありゃ、ずれてしまった・・・スマン。
2.DLLを読み込んでインスタンスを生成する
wxPluginManagerを使ってDLLを読み込み、wxClassInfoを全走査して目的のクラスを見つけます。
これは URLリンク(lists.wxwindows.org) とほとんど同じです。
---------------------------------
#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;
}
---------------------------------
以上です。
530:514
03/10/13 03:21
あの・・・追記です。
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の無駄レスごめん。
531:思兼 ◆l3iwkTImVo
03/10/13 17:46
wxWindows Personal 英語版をインストールしてみました.
確かにwxWindowsの影も形もありません・・・ハァ.
デモでは新規作成にwxWindowsのタブがあったのに,こっちにはありません.
wxWindowsはどういう形で使えるようになるのかすら判りません.とりあえず
10月半ばのC++BuilderXではwxWindowsは使えなさそう.
532:デフォルトの名無しさん
03/10/14 11:36
>>523
CBXのどこにRADだと書いてあるのかと小1時間・・・
>>531
某得意のPro版以上とか?
533:思兼 ◆l3iwkTImVo
03/10/14 18:16
>>532
URLリンク(www.borland.com)
このデモの最後の方ではwxWindowsアプリをRADっぽく作る様子があるんだけど・・・
少なくともPersonal版には無いな.ラインナップ間の機能を比較する表にwxWindowsの
項目が無いから,wxWindowsサポートの有無が差別機能だとも思えない.
ソッコーでアンインスコして,MinGW Developer Studioをインストールしてみた.
こっちはなかなか良い.何よりめんどくさいwxWindowsのインストールが簡単にできる
ことだけでも十分うれしい.IDE自体もwxWindows製なので動作が軽い.
他のIDEが使いたいなら,インストールした後wxWindows関連のファイルだけ取り
出してアンインストールするという使い方もアリかも.
534:532
03/10/14 21:49
>>533
そのデモ見てなかった。すまん。
ただDelphiでも比較表にVCLソースの有無とか書いてないし。
535:思兼 ◆l3iwkTImVo
03/10/15 00:18
プロコンも終わったし,ドキュメント書いてからソースを某雑誌の人に
提出したら翻訳に再参戦しようかと思います.
で,結局C++BuilderXのwxWindows採用の噂以降も翻訳作業は続いて
いるんでしょうか?
メインの開発環境をノートPCに移行してから,まだCVS入れてないんです.
536:デフォルトの名無しさん
03/10/16 11:02
>>514-515 と >>527->>530 は全て誤りでした。
間違った情報のまま残しておくとTipsに載った場合にまずいので修正しておきます。
wxPluginLibraryが何をするのかというと、通常の::LoadLibrary,dlopenの動作に加えて、
「wxModuleから派生しているクラスをwxWindowsの型システムにインポートする」
という機能が付加されているという、この一点だけです。
wxPluginManager::LoadLibrary("ライブラリ");を実行するだけでpublic wxModuleなクラスはちゃんと使えます。
public wxModule"以外の"クラスは型システムにインポートされませんので工夫して書く必要があります。
ところでWindowsでなかなかうまくいかなったのですが、その原因は wxClassInfo::sm_first でした。
こいつはプロセス中で唯一であることを保証しなければいけません。
つまりDLLを使うことが必須となります。(スタティックリンクでうまくいくようなアイデアがあれば教えてください)
Linuxでうまくいっていたのは、wxGTK.rpmで入れているため元々共有ライブラリになっていたからでした。
これについては
URLリンク(lists.wxwindows.org)
の P.S.の部分に
>you need to build your app and dll using WXUSINGDLL=1, otherwise you'll have no end of trouble.
とちゃんと書いてありました。(でもこれP.S.なんてもんじゃじゃないだろーと思った)
537:デフォルトの名無しさん
03/10/17 00:15
>>536
訂正が間違ってるというとんでもないことをしてしまいました。(;´Д`)
> wxPluginManager::LoadLibrary("ライブラリ");を実行するだけでpublic wxModuleなクラスはちゃんと使えます。
> public wxModule"以外の"クラスは型システムにインポートされませんので工夫して書く必要があります。
そんなことないです。wxClassInfoを生成(IMPLEMENT_DYNAMIC_CLASS)すると自動的にインポートされます。
wxModuleを継承したクラスは、メモリにマップ・アンマップされる度にOnInit,OnExitが呼ばれ、
そうじゃないクラスは特に何も起こらない、です。モウカキマセンヽ(`Д´)ノゴメンナサイ
538:デフォルトの名無しさん
03/10/17 14:13
昨日、2.4.2落としたら src/makefile.b32 が付いていないみたいなんですけど、
どうやってlib作ったらいいですか?
539:の
03/10/18 11:53
> 537
お疲れです。
>モウカキマセンヽ(`Д´)ノゴメンナサイ
そんなこと言わずに書き込んでくだされ。
Hackについてけないことが多いですが……
> 538
$(WXWIN)/docs/(システムごとのフォルダ)/install.txt
を見るヨロシ。
コンパイラごとのmakefileを使うか、configureを使うみたいですな。
540:思兼 ◆l3iwkTImVo
03/10/18 11:59
bcc使ってないから知らないけど,configureは使えないんだよね.bccでは
makefileがないとビルドできないということになると思うけど,使用するmakefileが
変わったのかな?
MinGW Developer StudioのwxWindows入りバージョンを使ってるから,マトモな
アドバイスが出来なくてスマソ.
541:デフォルトの名無しさん
03/10/18 12:15
>>539
結局はスタティックリンクするとwxClassInfoのメンバ変数が複数生成されてしまうという
こちら側のしょうもないミスだったのですが、ろくに確認せずに書いてしまって申し訳なく思っとります。
>そんなこと言わずに書き込んでくだされ。
お言葉に甘えて、これからは確実に確認してから書き込みさせていただきます。
>>BCCの話題
いやいや、src/makefile.vcの中身見れば分かるけど、
src/msw/makefile.*を読んでるだけなので、
BCCだとsrc/msw/makefile.b32を使えばいいわけです。
src/makefile.vcをコピってちょっと修正すればOKだと思う。
542:デフォルトの名無しさん
03/10/18 12:21
×src/makefile.vcをコピってちょっと修正すればOKだと思う。
○src/makefile.vcをコピってちょっと修正してもいいと思う。
543:デフォルトの名無しさん
03/10/18 14:48
一応今回の件(wxClassInfo,wxDynamicLibrary)についてまとめてみました。
URLリンク(www004.upp.so-net.ne.jp)
転載等は自由にして下さって構いません。
544:538
03/10/19 02:08
>>539-542
レスサンクス、とりあえず来週
>src/makefile.vcをコピってちょっと修正
ためしてみます。
545:デフォルトの名無しさん
03/10/19 07:14
Cygwin環境でいじってみようと、ドキュメントに書いてあるとおりに
../configure --with-msw --enable-debug --enable-debug_gdb --disable-shared
make
でコンパイルしました。
これだと、cygwin1.dllが必要になっていると思うんですが、
cygwin1.dllが必要ないようにするにはどうしたらいいのでしょうか。
-mno-cygwinをどこかで指定するのでしょうか。
546:思兼 ◆l3iwkTImVo
03/10/19 08:23
>>545
specあたりを弄ればいいんじゃない?
でもいろいろ問題があるかもしれないから,↓を読んでから挑戦してね.
URLリンク(www.sixnine.net)
547:538
03/10/20 13:32
>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)
548:538
03/10/20 13:36
ためしてみたのは
make -f makefile.b32 FINAL=1
でライブラリを作成して samples\dialogs をメイク、実行ができました。
549:538
03/10/20 13:52
というか、
>BCCだとsrc/msw/makefile.b32を使えばいいわけです。
が、正解だったのですね。おさわがせスンマソ
550:デフォルトの名無しさん
03/10/20 13:54
へえ
551:デフォルトの名無しさん
03/10/25 14:45
>>546さん
MinGWDSに同梱のwxWindowsライブラリからリソース使えますか?
MinGWからライブラリ作り直さないと無理ですかね・・・
552:デフォルトの名無しさん
03/10/25 15:24
というか「(゚∀゚)ノ☆バンバン! とりあえずライブラリ全部持ってこーい」ってオプションないのかな
--enable-controls use all usual controls
これは違うみたいだし
553:思兼 ◆l3iwkTImVo
03/10/25 21:56
>>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
554:思兼 ◆l3iwkTImVo
03/10/25 22:14
>#さっさとdialogedをxrcバージョンにしろよ>wxWindows
ちゃんとwxrceditってのがありますね.contribのなかにあるのを「ちゃんと」と
言うかどうかは知りませんけど.
いまcontrib内のmake中ですが,errorやwarningが沢山出てくる・・・使えないかも.
555:思兼 ◆l3iwkTImVo
03/10/25 22:31
wxrceditが一応ビルド&実行可能でした.
使い方が判らないけれど,単にXRC専用xmlエディタにプレビュー機能が
付いたみたいな感じで,RADツールみたくペタペタと貼るのは無理かも.
556:デフォルトの名無しさん
03/10/26 00:16
>>555
俺使い方良く分からんかった。
あれだと手書きの方が早い気がした。
557:思兼 ◆l3iwkTImVo
03/10/26 06:19
>>556
一応,プレビューがサクサク表示されるならあっちの方がデザインしやすい
とは思う.でもまだXRCはお勧めできるものではないね.
っつーことで,wxr形式のリソースに対応していないMinGWDS付属ライブラリは
使いにくいかも.
wxWindowsって結構こういう不完全な部分が多いかも.自分で使う分には良いけど,
C++初心者の後輩に使わせるGUIツールキットとしてはgtkmmかFOXの方が良いかも.
翻訳再参戦は延期してしばらく別のライブラリを触ってみます.
#Windows上でフリーで初心者にも使いやすい開発環境をそろえるのは大変かも.
558:の
03/10/26 22:26
wxListBox終ったなり
URLリンク(wxwindowsjp.sourceforge.jp)
559:デフォルトの名無しさん
03/10/30 15:13
otsu
560:デフォルトの名無しさん
03/11/03 00:24
思兼 ◆l3iwkTImVoにも見捨てられた哀れなライブラリ
561:の
03/11/03 03:43
>560
まあ、のんびりいくよ。マターリとな。
使う分にはいいんだが、訳すのは大変。ヒマが作れん。
Wikiみたいのだったらなぁ
562:デフォルトの名無しさん
03/11/03 17:07
wxFoundationとBorlandの採用がらみでMLは喧喧諤諤でし。
563:デフォルトの名無しさん
03/11/05 07:29
>>562
wxWindowsがBorlandに採用されるん?
564:思兼 ◆l3iwkTImVo
03/11/05 17:06
>>563
URLリンク(www.zdnet.co.jp)
今はWindows版用のプレビュー版プラグインとして提供されて
いる・・・んだと思う.
将来的にC++BuilderやKylixと統合される時には,完全にクロス
プラットフォームな標準プラグインとなると思いたい.
565:思兼 ◆l3iwkTImVo
03/11/05 17:14
>>560
どっちかっていうと,C++自体に愛想が付きかけている気がする.すごく
強力で,プロコンの競技部門には必須だし,それ以外でも自分個人で
使う分にはすごく良い.でも後輩に教えようとすると,プログラミング以外で
覚えないといけない部分があまりにも多いことに気が付く.
多分,他人と一緒にプログラムを書くときに,個人の能力差が一番問題に
なるのもC++だと思う.
#C#かJavaがガベッジコレクタ&VM無しで動かせるなら,すぐにでも移行したい.
566:デフォルトの名無しさん
03/11/05 17:15
Rubyだな
567:思兼 ◆l3iwkTImVo
03/11/05 17:19
>>566
Rubyって起動速い?
値ベースと参照ベースをプログラマが指定できるGenericsがある?
メモリ管理をプログラマが指定できる?
JITコンパイラの最適化能力は高い?
ブロックは{}の形が見やすくて好きだけど,Rubyがプロコンの競技で十分使える
性能を持っているのなら後輩に教えてみる.
568:デフォルトの名無しさん
03/11/05 17:33
| ブロックは{}の形が見やすくて好きだけど,Rubyがプロコンの競技で十分使える
|性能を持っているのなら後輩に教えてみる.
と言う位Rubyを分かってるなら前4つの質問の答えは分かると思うが?
569:思兼 ◆l3iwkTImVo
03/11/05 19:15
>>568
いや,Rubyのプログラムソースを見たことがあるだけで,実際に使ったことは無い.
Perlっぽいスクリプト言語だとか,中間コード+JITコンパイルだからPerlより速いとか,
その程度の印象はあるけどそれが正しい理解だと言う自身は無い.
570:思兼 ◆l3iwkTImVo
03/11/05 19:26
調べてみた.
1.起動速度
C#より遅い
2.Generics
無い?(検索してもそれらしいものがヒットせず.リファレンスを概観しても載ってない)
3.メモリ管理
ガベッジコレクトに任せるしかない.
4.実行速度
C#にダブルスコアをつけて遅い.
結論
Perlの代わりにはなっても,C++の代わりになるとは思えない.
571:デフォルトの名無しさん
03/11/05 19:37
>>570
Rubyはモノタイプ言語なので、genericsは不要。
型チェックが無いので、ミスが許されない競技にはお薦めできないかも?
競技なら、タイピングに手間かけられないだろうから、いくら要件を満たしててもAdaなんかは除外でしょうね。
OCamlとか、どう?(よく知らんけど
C++の機能に満足してて複雑さに愛想が尽きてるならDが一番いいんだろうけど、まだアルファだし。
//スレ違いすまんです
572:思兼 ◆l3iwkTImVo
03/11/05 19:56
>>571
競技といっても,プログラミング速度を競うのでは無くて,先に作ったプログラムを
持ち寄って性能を競い合うものです.形式としてはロボコンに近い.
URLリンク(www.procon.gr.jp)
#スレ違いすぎだな・・・スマソ
573:デフォルトの名無しさん
03/11/05 20:18
>>565
GCなしネイティブでC系といったら、D言語ですよ。
genericsもあるし、値・参照の使い分けも、メモリ管理も出来る。
スレリンク(tech板)l50
難点は、D言語がデフォルトのGUIライブラリを持っていないこと。
wxWindowsがポートされると嬉しいんだけど。
574:デフォルトの名無しさん
03/11/05 21:53
>>573
D言語はGC付きだよ。オフにすることもできるけどさ。
まぁ、でも、D言語は俺も期待。思想にちょっと不満はあるが。
文字列とか連想配列とかはライブラリに入れて欲しいかな、やっぱり。
575:の
03/11/05 23:59
>565
Templateみたいな仕組みのある言語があれば、そっちも勉強したいなあ。
コンパイル時に確定している情報と実行時じゃないと確定しない情報という観点で
効率化を計っている言語はC++以外に知らないしなぁ。
576:デフォルトの名無しさん
03/11/06 08:38
Eiffelとかどうなんだろう?
577:デフォルトの名無しさん
03/11/06 19:38
どんな言語にせよ、メジャーになってもらわないと仕事に使えないのが辛い。
メジャーじゃなくても仕事に使える、というつっこみはなしで。
578:デフォルトの名無しさん
03/11/07 03:17
まずは使ってメジャー化させてくださいw
579:デフォルトの名無しさん
03/11/07 23:01
>>574
全体的に禿同
580:デフォルトの名無しさん
03/11/07 23:46
連想配列は同意だが、文字列に関しては、そのまま文字列に使える配列というのは嫌いじゃ無い、
というか、素のCだってそうだし。
文字列をクラスにした場合、C++のように、リテラルからの格納形式への変換というコストと、
様々な文字列クラス乱立という混乱を招くので、組み込みで正解と思うし、
charの配列とそれ以外の配列を区別する必然性は無いので、OKかと
むしろ問題は.sort。同じデータ列でも並び方は色々あるのに、一種類だけ言語に組み込む理由が…
//スレ違いゴメン
581:デフォルトの名無しさん
03/11/10 05:20
>>580
見た感じ、標準ではクラスを使わず、データと関数を分離して使う方向で行ってるね。
ここんところがC的だが、Cより安全になってるようだからいいか。
でも、わざわざ配列操作のために演算子作ったり、deleteを連想配列の要素削除に使ったり。
うーん、普通に関数じゃダメなんかな。~ってタイプしにくいぞ。関数のがいいよ……。
582:デフォルトの名無しさん
03/11/12 23:55
凄いスレだ・・・翻訳プロジェクトが動いてる・・・
このスレの神に習ってFLTK日本語ドキュメントでも作っちゃおうかねぇ・・・
583:の
03/11/13 01:12
>582
ちょっと停滞中だよ。私も今しばらくはTikiの勉強中……
でも、いい加減飽きたから翻訳に戻ろうかな……
584:思兼 ◆l3iwkTImVo
03/11/18 16:51
さっきCマガジンを立ち読みしてきた.
C++BuilderXの紹介記事があって,Borlandへのインタビューもあった.
wxWindowsは,将来搭載される予定のGUI関連の機能のプレビューと
して搭載されただけで,wxWindowsの採用が決定しているわけではない
とのこと.
とりあえず,wxWindows3が大幅に使いやすくなって,C++BuilderXへの
採用されて,一気にメジャー化という夢はまだ残ってる.
585:デフォルトの名無しさん
03/11/18 21:43
そ、そうなのか。
なんだったんだ。
586:デフォルトの名無しさん
03/11/18 21:44
夢見すぎ。
587:デフォルトの名無しさん
03/11/18 22:23
1月にwxWindowsで遊だときは日本語の情報なんてほとんどなかったのに。
ちょっとだけマニュアルを日本語に訳してすぐ挫折した。
すごいよ2ch
そのとき作ったページの一部を編集して6月くらいにアップしてほったらかし。
このスレ見たら元気になったので、更新する気力が湧いてきそう。
URLリンク(www.h3.dion.ne.jp)
588:デフォルトの名無しさん
03/11/22 02:52
GTK,gtkmmでいいじゃん。
589:思兼 ◆l3iwkTImVo
03/11/22 06:53
>>588
gtkに比べて,wxWindowsはネイティブのLook'n'Feelだとか,多機能だという
違いがある.
特に機能に関しては,Write once, Compile anywhereを実現するために,
API依存を吸収するラッパクラスが多数存在する.
その代わりgtkmmに比べて泥臭いコードになるんだけどね(w.wxWindows3に
期待.
590:デフォルトの名無しさん
03/11/22 16:29
おれも、gtkやQtなどを使ってしまうことに賛成。
どうしても、windowsの操作感を求めるなら、外部だけ作り直してしまった方がいい。
591:デフォルトの名無しさん
03/11/22 21:23
逆にGTKやQtはwxWindowsに比べてどんな利点があるの?
592:デフォルトの名無しさん
03/11/23 11:44
URLリンク(www.roebling.de)
どうよ?
593:デフォルトの名無しさん
03/11/27 20:04
2.4.2で、メッセージカタログをShift_JISで作るとちゃんと使えないみたい。
UTF-8では使えたので、内部での変換でしくってるのか?
2.4.0ではちゃんと使えてたのに……。
594:灰 ◆v/.u/aNe9w
03/12/09 01:29
wxColour と 標準イベント識別子 を翻訳してくれた素敵さん。
URLリンク(wxwindowsjp.sourceforge.jp)
URLリンク(wxwindowsjp.sourceforge.jp)
ありがのう。
あと、この辺に突っ込んでくれる人がいると誰かが幸せになりそうな気がします。
URLリンク(dot-gray.s33.xrea.com)
URLリンク(dot-gray.s33.xrea.com)
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
596:595
03/12/09 18:50
すみません、どなたか教えて下さい。
何か長い処理をする時に、処理をしているあいだにWindowとかが再描画されなくなって
しまうのですが、これを処理の途中に再描画されるようにしたらどうしたら良いでしょうか。
メインフレームのRefresh(), Raise(), Update() とかを呼べば良いのかと思ったのですが、
それでは再描画されないようで…。
GUIのソフト作った事なんて殆ど無いのでどのようなキーワードで検索したら良いのかも分からず、
どなたかポイントだけでも良いので教えて下さいm(_ _)m
すみません>>595バケました。
597:デフォルトの名無しさん
03/12/09 19:02
先人は0.1秒以上かかる処理をメインスレッドでやるなと言っていたが。
598:デフォルトの名無しさん
03/12/09 19:25
要するに0.1秒未満で実行できるハードウェアを使えということか。
599:デフォルトの名無しさん
03/12/10 03:18
マルチスレッド
600:デフォルトの名無しさん
03/12/10 18:04
>>597
0.1秒未満の処理に分割しろって事ですな
601:デフォルトの名無しさん
03/12/11 17:14
wx494.htm によると,マルチスレッドにする他の選択として,演算を
idle handler にするか,定期的に ::wxYield() (wxApp::wxYield())を
呼んで画面を更新してください,と書いてあります.
wxYield は,プログレスバーや splashscreen を更新する時によく使われます.
ためしてみてください.
602:596
03/12/16 14:21
>>601
ありがとうございました。さらに安全な::SafeYield()を使うことでそれなりに目的が達成されそうです。
また、
>>597, 599
やはり途中で中止とかもできるようにしたいので、将来的にはマルチスレッドにもしようと思います。
ご指導ありがとうございました。
ちなみに wxMDIChildFrame::GetParent() って wxGTK だと wxMDIClientWindow を返して、 wxMSWだと
wxMDIParentFrame() を返すんですね。コレにハマっていたので、御礼兼メモとして書かせて頂きます。
603:灰 ◆v/.u/aNe9w
03/12/20 23:20
AkiYunタンありがつー。
URLリンク(wxwindowsjp.sourceforge.jp)
604:デフォルトの名無しさん
03/12/21 14:39
どんどんあげていこう
605:デフォルトの名無しさん
03/12/21 22:56
じゃぁ、さげ
606:デフォルトの名無しさん
03/12/22 01:09
>>602
GetParentでクライアントウィンドウ返さるのっておかしくねぇ?
バグかな。
607:デフォルトの名無しさん
03/12/25 16:47
翻訳はここに書き込んでいいのかな?
wxWindows Hello World サンプル の一文目は、
多くの人から、文法や基本的な原理に関する幾らかの迅速な判断が出来るように、
ここに小さなサンプルを示して欲しい、という要求をされてきたが、あなたは今、
wxWindows における"Hello World" を見ることが出来る。
って感じでしょうか。幾分堅いかな。
608:デフォルトの名無しさん
03/12/28 22:50
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
だそうです.
609:思兼 ◆l3iwkTImVo
03/12/29 00:16
>>608
それ,ダウンロードしたPersonal版にはついてなかったんだよな・・・.
Borlandの中の人によると,まだwxWindowsに正式に決めたわけでは
無いらしい.
610:デフォルトの名無しさん
03/12/29 01:24
>>609
あくまで,_A technology preview_ですから.
でも,Borlandのサイトからダウンロードできるようになってました.
611:& ◆iFNZlc1izc
03/12/29 11:51
>>607
ありがつー。直してきました!
612:デフォルトの名無しさん
03/12/31 17:13
初心者ですみません。教えてください。
wxWindowsをダウソしてインクルードファイルのパス
を通したのですが、wx/setup.hがないと叱られてサンプルが
コンパイルできません。
で、自作の空のsetup.hをつくってwxフォルダに入れてみたのですが
ダメなのですがどうすればいいでしょうか?
613:デフォルトの名無しさん
03/12/31 17:16
>>612
Windowsの検索機能でsetup.hを探しましたか?
614:デフォルトの名無しさん
03/12/31 17:19
>>613
レスありがとうございます。
探したのですが、#include wx/setup.h
になっていてwxにはないのです。
wx/unix/setup.hとかはあるのですが。。。
615:デフォルトの名無しさん
03/12/31 17:21
>>614
CategoryList - Let's wxWindows
URLリンク(dot-gray.s33.xrea.com)
616:614
03/12/31 17:55
>>615
レスどうもです。
今読んでいるのですが、後ほど報告させていただきますね。
ありがとうございます。。。
617:614
03/12/31 23:33
レス遅れてすみません。
うまくいきました。
wx/msw/setup.hをwxフォルダにコピーしたらいけました。
どうもです~。。。
618:デフォルトの名無しさん
04/01/01 00:21
まさかinclude/wxにコピーしたのか?
もしそうだったら、そんな変なことせずに lib/msw???/ をインクルードパスに追加せーよ。
619:614
04/01/01 00:29
>まさかinclude/wxにコピーしたのか?
そうです(TT)
>もしそうだったら、そんな変なことせずに lib/msw???/ をインクルードパスに追加せーよ。
だってソース中で、#include wx/setup.h ってなってるんですもん(TT)
620:デフォルトの名無しさん
04/01/01 01:03
今年はwxWindowsがメジャー化しますように
621:デフォルトの名無しさん
04/01/01 02:38
>>619
>だってソース中で、#include wx/setup.h ってなってるんですもん(TT)
そりゃそうだよ。
lib/msw???/wx/setup.h
にビルドに対応したsetup.hが入ってるんだから。
lib/msw???/をインクルードパスに追加したら、#include <wx/setup.h>で
lib/msw???/wx/setup.hが読み込まれるだろ?
622:の
04/01/01 03:20
あけおめ
>619
VCでのインストール手順はここです(引越しました)。
URLリンク(www.fiercewinds.net)
VC使ってるなら参考にしてください。
623:デフォルトの名無しさん
04/01/01 06:09
wxmsw242d.dllのサイズが26.7Mもあるんですが
もっと小さくできませんか?
624:思兼 ◆l3iwkTImVo
04/01/01 06:33
>>623
デバッグ用だとそんなもん.リリース版ではもっと小さくなるから気にしない.
あと,VCのランタイムと違ってwxWindowsのランタイムはバージョンが同じでも
configureの仕方で中身が違ってくるから,リリース版ではDLLを使わずにスタティックで
ビルドする事をお勧めする.
625:デフォルトの名無しさん
04/01/01 07:48
>>624
こんなもんですか。なるほど。
公開する上ででかいdllをダウンロードするのは大変だと思ってたんですが
しょうがないですね。
ありがとうございました。
626:思兼 ◆l3iwkTImVo
04/01/01 15:41
>>625
wxmsw242d.dllはデバッグビルドされたdll.デバッグ情報が入ってるのでデカイ.
公開にはデバッグ情報の無いwxmsw242.dllの方を使おう.
できれば>>624に書いたようにスタティックで使うことをお勧めするけどね.
627:デフォルトの名無しさん
04/01/01 22:27
make -f makefile.g95 WXMAKINGDLL=1
でコンパイルするとwxmsw242d.dllができるのに対して、
wxmsw242.dllを作るにはどのようにコンパイルすればいいですか?
628:思兼 ◆l3iwkTImVo
04/01/01 22:32
>>627
bccは使って無いから知らないけど,多分
make -f makefile.g95 WXMAKINGDLL=1 FINAL=1
だと思う.
629:思兼 ◆l3iwkTImVo
04/01/01 22:36
あ,makefile.g95はgccか.多分コマンドは>>628で合ってる.
それでダメなら,cygwinかMinGWで
strip wxmsw242d.dll
でデバッグ情報を外せるはず.こっちだと最適化はされないけどね.
630:デフォルトの名無しさん
04/01/01 22:48
ありがとう。やってみます。
631:デフォルトの名無しさん
04/01/01 23:52
wxmsw242.dllできました。なんと4.85M!
これで「サイズデカッ!」っていわれずにすみそうです。
ありがとうございました。
632:デフォルトの名無しさん
04/01/02 00:18
サンプルのコンパイルがうまくいないのはなぜですか?
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
633:デフォルトの名無しさん
04/01/02 04:08
ちょいと質問.
wxWindowsを最初にいったんビルドしたら消してもいいファイルってどれだろ?
ちょっとHDがきつい(全体で9GBしかない)から,
もう要らないファイルは消したいんだけど.
Debug~は(Release~さえあれば)いらないの?
634:デフォルトの名無しさん
04/01/02 04:34
>>633
*.obj
635:思兼 ◆l3iwkTImVo
04/01/02 04:43
>>633
環境によるけれど,例えばMSYS+MinGWの場合,make installしたあとは
wxWindowsを解凍してできたフォルダの中身全部いらなかったと思う.
必要なヘッダファイル+ライブラリファイルがコピーされるから.
Debug~は,wxWindowsのデバッグ情報が要らないならいらないと思う.
今はwxWindows入れて無いから確認取れないので,誰かフォローお願い.
636:632
04/01/02 05:32
エラーの原因がわからないので寝ました。
先程起きてもういちどやってみたらうまく行きまくりでした。ムハッ
原因はFINAL=1を付け忘れたことです。
しかも、サイズが205K! デバッグのときは1M以上あったのに驚きです。
make -f makefile.g95 WXUSINGDLL=1 FINAL=1
637:の
04/01/02 13:19
>633
Win2K/VC++/wxWindows2.4.2で試してみました。
includeフォルダとlibフォルダ以外は削除しても問題なさそうです。
#Locale使うのならlocaleフォルダもいるかな?
また、libフォルダの中身も、リンク/インクルードしているファイル以外は
削除しても問題なさそうです。
#自分のプログラムだと lib/wxmsw.libとlib/mswd/wx/setup.hのみ
これで19,989,302 バイト……スタティックリンクだからしょうがないけどね。
638:633
04/01/02 19:06
>>635>>637
とりあえずRelease~とかDebug~とか消してみた.
ほとんどがobjファイルだったからOKだよね.
ありがと.
639:デフォルトの名無しさん
04/01/03 02:45
海外掲示板用オフラインリーダーを作るスレ
スレリンク(tech板)
海外でよく使われていうる掲示板スクリプト
専用のオフラインリーダー作って下さい。
必要な条件はID、PASSを管理できること、
OpenJaneみたいな三面型の見た目。
簡単にローカライズできるように言語ファイルを採用
640:思兼 ◆l3iwkTImVo
04/01/03 04:08
MinGWをインストールしやすいようにパッケージにしてくれているbitwalkさんの
ところで,いつの間にかwxWindowsもパッケージ化されていました.
URLリンク(www63.tok2.com)
MinGW+wxWindowsのインストールが楽チンでできるのでお勧め.
641:デフォルトの名無しさん
04/01/07 14:42
サンプルのopenglだけうまくコンパイルできない。
642:デフォルトの名無しさん
04/01/07 16:01
Java1.5でデフォルトの見た目がWindowsネイティブっぽくなる&テンプレートっぽい機能が使えるようになるので、wxWin捨てる悪寒です。
643:デフォルトの名無しさん
04/01/07 16:46
>>642
捨てるもなにもそもそもどれくらい使っていたのかと(ry
644:デフォルトの名無しさん
04/01/07 18:20
>>641
エラー内容は?
OpenGLのヘッダーファイルは入っている?
645:デフォルトの名無しさん
04/01/07 18:49
>>644
調べてみる
646:デフォルトの名無しさん
04/01/07 18:57
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
647:デフォルトの名無しさん
04/01/07 19:19
>>646
Please set wxUSE_GLCANVAS to 1 in setup.h
648:デフォルトの名無しさん
04/01/07 20:15
・・・
649:デフォルトの名無しさん
04/01/07 20:26
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
650:デフォルトの名無しさん
04/01/07 20:30
ライブラリをビルドする前に1しろよな、当然ながら。
651:デフォルトの名無しさん
04/01/07 20:43
0から1にはしたよ
652:デフォルトの名無しさん
04/01/07 20:55
こんなのもある
cube.cpp:81: warning: unsigned int format, long int arg (arg 3)
653:デフォルトの名無しさん
04/01/07 20:58
もしかして、wxWindowsとは別にopenGLをインストールしないとダメ?
654:デフォルトの名無しさん
04/01/07 21:04
>>651
650も書いてるが、wxWindowsを初めからビルドし直さなければ
だめだよ。
それから、サンプルのコンパイル。
655:デフォルトの名無しさん
04/01/07 21:14
>>654
え?
そんなめんどうなことやりますよ。
656:デフォルトの名無しさん
04/01/07 21:18
やりおえたら、その手順をうpしてね♪
657:デフォルトの名無しさん
04/01/08 03:16
Linux版だとRPMにGL版入ってるけどな。
658:655
04/01/08 04:42
>>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
大成功!みなさんありがとうー。。。 あれ? (つづく)
659:デフォルトの名無しさん
04/01/08 04:59
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をクリックすると。キター!!
みなさんありがとうございました。うまくいきました。
660:思兼 ◆l3iwkTImVo
04/01/08 05:13
>>659
dllだと,ビルドしたときの設定によって中身が変わっちゃうからね.
自分で使う分には,使いそうな機能全部Enableにしたdllを使えばいいかもしれないけれど,
配布する時にはユーザーが使っているdllのことも考えないといけなくなる.
全部スタティックリンクしちゃえば,DLL HELLは避けられるよ.賢いリンカは使わない関数は
外してサイズを削ってくれるし,そもそもMFCとちがってwxWindowsはアプリが少ないからdllを
使ってもメモリの節約になら無いから,スタティックがお勧め.
661:659
04/01/08 05:45
>>660をネタにググルってみる。
まずはスタティックリンクから
662:灰 ◆v/.u/aNe9w
04/01/09 02:12
wxArray と wxList を翻訳してくれた方がおりますです。
あんがとー。
663:デフォルトの名無しさん
04/01/09 04:52
VBのように簡単にプログラム作れるwxEuphoriaを普及させることが
wxWindowsを広めることにつながるような気がするので、とりあえずEuphoria使ってみて。
Euphoria
URLリンク(directory.google.com)
664:灰 ◆v/.u/aNe9w
04/01/12 01:11
wxButton
wxControl
wxArray
wxFlexGridSizer
デバイスコンテキストの概要
んを翻訳してくれた方々がおりまッス!
ありがつー!
665:デフォルトの名無しさん
04/01/12 01:33
試訳
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).
666:灰 ◆v/.u/aNe9w
04/01/13 21:49
バイトオーダーマクロ 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は未翻訳なようなのでまず翻訳をやろうと
思います。
ただ、ざっとみたところサンプルがないと扱えなそう。。。
どなたか使ってみている方おられますか?
668:の
04/01/24 04:37
>667
あれ?2chViewerにHTML Parserって必要だっけ?
URLリンク(www.monazilla.org)
見ると要らなそうな気がするけど……
669:デフォルトの名無しさん
04/01/27 21:59
>668 確かに・・・
ボード一覧取得用ソースを参考にして
文字列操作のみでいけそうですね。
670:デフォルトの名無しさん
04/01/28 00:23
wxWindows3.0 マダー?
STLization マダー?
671:灰 ◆v/.u/aNe9w
04/01/29 09:28
うpろだにあげてくれた人
ありがのう。
回収する時間がちょいと無いので
しばしおまちを
672:デフォルトの名無しさん
04/01/31 14:35
あの。。。>>670はマジ質問です。
URLリンク(www.wxwindows.org)
で 15/12/2003 ってなってるままなんだけど。
MLとかで情報流れてませんか?私には見つけられませんでした。
あとCVSで3.0に向かってるのはどれなのでしょう?HEADを見ればいいんですか?
673:デフォルトの名無しさん
04/02/01 14:05
レイアウト関係が貧弱だーーー!!!
674:デフォルトの名無しさん
04/02/01 14:54
>>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って、そんなに貧弱に思えないけど・・・
675:デフォルトの名無しさん
04/02/03 08:36
>>674
一見そう見えるんだけど、様々なニーズを満たせるほど設計がよくないです。
必要かつ十分な設計になってないというか。
SwingやGTKのレイアウトと比べると色々できないことや悩むこと多し。
676:灰 ◆v/.u/aNe9w
04/02/07 05:41
>>671
回収完了。
メールの方もありがのう。
677:デフォルトの名無しさん
04/02/07 13:08
どんどん上げちゃおう
678:思兼 ◆l3iwkTImVo
04/02/08 23:35
こんなサイト見つけたなり.
URLリンク(www.h3.dion.ne.jp)
卒研発表終ったけど,ちと作りたいアプリがあるので翻訳再参戦はもうちょっと先延ばしします.
そのアプリにwxWindowsを使うつもりだけど,wxXMLを使うかXercesを使うか悩み中.
679:デフォルトの名無しさん
04/02/08 23:48
>>678
>卒研発表終ったけど
_, ,_ パーン
( ‘д‘)
⊂彡☆))Д´) >>思兼
うらやましい。俺今週末修論発表だ。早く楽になりたい。
680:デフォルトの名無しさん
04/02/10 02:12
Windowsで、メモリ上に、BITMAPINFOHEADERと、ビットマップデータがある状態で、
それを画面に表示させたい場合ってどうやってやるかわかります?
wxBitmapのコンストラクタに、幅、高さ、色数、データをぶち込んでみたんですが、
なんか表示される気配がありませぬ。
とりあえず24bitカラーなんで、パレットはつかってないんですが。
681:思兼 ◆l3iwkTImVo
04/02/10 09:49
>>680
wxImageをビットマップの中身から作成するべし.BMPのフォーマットって変態的だから
かなりめんどいけど.
682:680
04/02/10 11:02
なんだか呼ぶコンストラクタ変えたらできました
今までは、
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ビットだし…
まあこんなモンがメモリ上にあるあたりすでのポータブルじゃないから
問題なしっていう話がかなりあるが…
683:思兼 ◆l3iwkTImVo
04/02/10 16:14
>>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で読み込むという手順を取る.
684:デフォルトの名無しさん
04/02/10 16:58
そのメモリで作ったwxMemoryInputStreamを与えてwxImageを生成する、
というのがポータブルな正しい方法じゃないかな?
685:思兼 ◆l3iwkTImVo
04/02/10 17:34
>>684
おぉ,wxImage::LoadFileではwxMemoryInputStreamがあるんですね.
wxBitmap::LoadFileはファイル名しか受け付けてくれないから諦めてた.っていうか,
なんでwxBitmap::LoadFileはwxMemoryInputStreamに対応してないんだろう?
686:思兼 ◆l3iwkTImVo
04/02/10 18:48
>>682
ということで,ポータブルかもしれないBMPファイル表示アプリ
URLリンク(dot-gray.s33.xrea.com)
>>684
Thanx.
687:デフォルトの名無しさん
04/02/10 23:47
Windowsで、ステータスバーつかってると、
一番左側のフィールドに対して、
SetStatusTextとかPushStatusTextで
文字列を設定しても、マウスでメニューいじったり、適当に動かしてるだけで、
文字が消えてしまうんですが、抑制ってできないのかな?
たぶん、メニューとかツールバーのツールチップを表示させようとしてるのが原因っぽいんだが。。。
688:思兼 ◆l3iwkTImVo
04/02/11 10:49
>>687
一応こんな関数がある.
void wxFrame::SetStatusBarPane(int n)
メニューやツールバーのヘルプを表示するステータスバーのフィールドを指定する。
-1を指定するとヘルプを表示しない。
Push/PopStatusTextを使うと,ヘルプの表示が終ると元の表示に戻るっていう
実装にして欲しいね・・・.
689:思兼 ◆l3iwkTImVo
04/02/11 11:00
ソース確認してみた.
wxFrameBase::DoGiveHelp()がPushStatusTextじゃなくてSetStatusTextを使ってる.
メニューにカーソルを当てたらEVT_MENU_HIGHLIGHT_ALLマクロで指定した関数を
呼び出せるけど,メニューからカーソルを外したというイベントが無いからPush/Popは使えない
みたい.
690:灰 ◆v/.u/aNe9w
04/02/12 08:08
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
// ----------------------------------------------------------------------------
691:灰 ◆v/.u/aNe9w
04/02/12 08:09
@@ -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 @@
692:灰 ◆v/.u/aNe9w
04/02/12 08:12
// --- --- --- generated code ends here --- --- ---
+#if ( defined(__WIN32__) && defined(__BORLANDC__) && (__BORLANDC__ >= 0x551) )
+#pragma option pop
+#endif // pragma option push -O1
+
#endif // wxUSE_INTL
wx242用
無駄な改行が入ってしまいました。
ごめん。
693:682
04/02/14 22:16
>>684,686
遅れましたが、さんくすです。m(_ _)m
とりあえず、686のソースを適当に改造して使ってみることにしました
694:デフォルトの名無しさん
04/02/16 19:42
wxWindowsすげえ。
これでつくったアプリはリコンパイルだけでプラットフォーム非依存?
695:思兼 ◆l3iwkTImVo
04/02/16 19:48
>>694
そーゆーふうに作ればね.
プラットフォーム依存で作ることも可能.
696:思兼 ◆l3iwkTImVo
04/02/18 15:33
翻訳プロジェクトの方達へ.
サンプルプログラムソース内のコメントの翻訳の仕方を統一しない?
697:思兼 ◆l3iwkTImVo
04/02/18 15:46
もう一つ提案.
クラスリファレンスを翻訳する時に,重要な部分の訳を優先しない?
クラスリファレンスの中身はメンバ関数の説明が大部分を占めていて,その多くは
わざわざ訳さなくても実際に使う時に読めば簡単にわかる程度のものだし.
パラメータの説明とか,単語数個で説明してあることをいちいち訳するのがメンドクサイ.
メンバ関数の説明以外のクラスの説明と,大きなRemarks項目が含まれる関数の説明
を訳し終わったら,とりあえず概訳完了ということにする.それでできるだけ多くのクラスを
概訳することを優先する.
698:デフォルトの名無しさん
04/02/18 22:53
age
699:灰
04/02/20 01:31
>>思兼
了解。
っつっても、何も出来ませんが…。
700:デフォルトの名無しさん
04/02/21 07:11
VisualWX
URLリンク(visualwx.altervista.org)
701:思兼 ◆l3iwkTImVo
04/02/21 07:53
>>700
イイ!
ところで,M$のWindowsと名前がかぶってるからという理由で,wxWidgetsに名前が変わるらしい.
702:ymasuda
04/02/23 19:18
>>697
了解です.(最近全然貢献してなくてすみません)
それから,成果をTeXソースに反映してはどうかと考えています.
sf.jp の方で doc/latex を管理してもらえるなら,backport は
私がやってもかまいません.どうでしょう?
703:デフォルトの名無しさん
04/02/24 07:23
February 23rd, 2004. wxWidgets 2.5.1 has been released.
704:思兼 ◆l3iwkTImVo
04/02/24 08:13
>>703
イイ.けど,2.5.xは開発版で,次の安定版は3.0.xなんだよなぁ.
ドキュメントのバグは2.5の方が少ないんだけど,とりあえず翻訳するのは2.4.0のままかな.
705:デフォルトの名無しさん
04/02/24 11:52
xrcでメニューとかダイアログとかゴリゴリ書いてたんだけど、
どうも速度的に思わしくないので,C++コードに書き換えたいなーと思うんですが、
xrcからc++にサクっと変換をしてくれるツールってありませんかね?
wxrcってそんなのと思ったら,xrcファイルをただ単に実行ファイルに埋め込むだけなんすね。
706:思兼 ◆l3iwkTImVo
04/02/24 11:59
>>705
そんなに速度が気になる?
何度も使うリソースなら,一旦生成したのを表示/非表示切り替えるだけにして
生成を最初の一度にするとかできない?
>>702
CVSとか使い慣れてないので,僕はちょっと・・・.sf.jpのProjectManagerの方
お願いします.
707:思兼 ◆l3iwkTImVo
04/02/24 12:17
そういや,OfficialHPのマニュアルが2.4.2になってる.日本語マニュアルもアップデートする?
とりあえずは2.4.0と2.4.2でdiffとって,大きな変更が無いファイルはそのまま使い,変更が
あるマニュアルは変更点を日本語に反映してという作業が必要になるけど・・・.マニュアルで
wxWindowsがwxWidgetsに変更されるまでは待つか.
708:思兼 ◆l3iwkTImVo
04/02/24 12:29
OfficialWebのマニュアルが2.4.2になったから,日本語マニュアルの原文へのリンクが
切れてる.マンドクセ.
709:ymasuda
04/02/24 16:12
>>708
latex の import : こちらで import しておきます.
リンク: sed で全て 2.4.2 に置き換えてみました,これ commit していいですか?
710:思兼 ◆l3iwkTImVo
04/02/24 19:21
>>709
明日試験終るんで,今週中に>>707の作業やっておきます.リンクの書き換えも
そんときに一緒にやっときます.
711:思兼 ◆l3iwkTImVo
04/02/24 20:04
>>707の作業について.
1.diffをとって変化が無いファイル
日本語ドキュメント内の,原文へのリンクの書き換えのみ
2.diffをとって変化があるファイル
リンクの書き換え+原文が変更された旨をコメントとして記す.
という感じで行こうと思います.翻訳者は,原文が変更されたファイルを訳する場合,
1.全く日本語訳されていないファイル
日本語訳のbodyタグ内を2.4.2のbodyタグで上書きしてから一旦commit.その後
翻訳開始.
2.日本語化されているファイル
頑張って変更点を反映.
という流れになります.
誰か他にアイデアありませんか?
712:デフォルトの名無しさん
04/02/24 21:44
>>711 思兼さん,
すみません,
> 日本語訳のbodyタグ内を2.4.2のbodyタグで上書きしてから一旦commit
の意味がよくわからない...とにかく何でもいいから追記して commit
しなさい,ということですか?
713:思兼 ◆l3iwkTImVo
04/02/24 21:54
>>712
今の日本語ドキュメントは2.4.0を元にして訳してる.で,2.4.2で内容が変更された場合,
内容(=<body>~</body>)を2.4.2のもので上書きしてから翻訳を始めてねって意味.
ヘッダ(=<head>~</head>)にはスタイルシートとか原文へのリンクとかに必要なものが
入ってるから,上書きしないでね.
714:デフォルトの名無しさん
04/02/24 22:17
>>713 i see.
今 CVS を見たら, wxWidgets というブランチができていますね...
中身は実質的に 2/22 あたりの wxWindows リポジトリをコピーしたものの
ようです.TeX ソース上では,まだ wxWidgets への置き換えは始まって
いませんね.うーん,いつ,どっちから作業コピーを取り出せばよいのかなぁ.
715:思兼 ◆l3iwkTImVo
04/02/24 22:20
wxのuserMLを見てたら,Widgetという名称も問題が起こる可能性があるらしいです.
とりあえずwxWindowsのまま様子見しましょう.
716:デフォルトの名無しさん
04/02/24 22:21
>>714 「wxWidgets というブランチ」
リポジトリの間違いでした... _| ̄|●
717:デフォルトの名無しさん
04/02/25 01:35
>>716
・・・ただ単に別モジュールじゃないの?
718:思兼 ◆l3iwkTImVo
04/02/25 20:19
やっぱり,全く訳をしていないファイルのbodyタグは,こっちでプログラムを使って2.4.2のものに
入れ替えます.
問題は既に訳されてるファイルが変更されてる場合だけど,どうしよう?コメントでdiffの結果
をHTMLの中に埋め込んでおくかな?
719:705
04/02/25 22:43
>>706
よく確かめてみたら、デバッグ版でやってたのがいかんかったみたいです。。。
Release版でビルドしなおしたら普通に速く動いてくれました。
ただ、なんかプログラムがバグったとき、
Debug版で実行したいとき毎回遅いのはちと辛めです。
メニューもxrcで書いてるんで、メインウィンドウが表示されるまでに
Debugだと30秒ぐらい平気でかかってしまうのはなんでなんでしょ?
しかし、Releaseだと普通に1秒もかからず表示できるのに…
ためしに、wxWindowsのライブラリをビルドするときに、
最適化を最高にしてみたけど、あんまし変化みられず…
xrcの部分以外はそんなに遅くないから、
ASSERT判定とかがあって遅くなりまくっちゃった
ってわけでもなさそうだし、、、
う~む、謎。
720:デフォルトの名無しさん
04/02/26 00:15
>>719
>メニューもxrcで書いてるんで、メインウィンドウが表示されるまでに
>Debugだと30秒ぐらい平気でかかってしまうのはなんでなんでしょ?
んなこたーない。ってか、そのxrcでかいのか?
721:デフォルトの名無しさん
04/02/26 00:58
wxtkでいいじゃん。
722:デフォルトの名無しさん
04/02/26 01:06
コンパイルオプションが違っていて、デバッグ版では中間オブジェクトまでいち
いち生成するが、リリース版ではインライン展開も効いてすっきりするとか?
723:719
04/02/26 02:28
>>720
メニュー2個とダイアログ3個が同じファイルに書いてあって、サイズは30kぐらいかな。
これって大きいのかな?
>>721
wxtkとはなんぞや?
>>722
だから、ライブラリビルド時にコンパイルオプションを変えて、
最適化を最大にしたんですが、ダメですた。
インライン展開もしたはず
724:デフォルトの名無しさん
04/02/27 21:10
mingwでXRCライブラリのdll作って使えた人います?
725:デフォルトの名無しさん
04/02/28 03:35
wxHatch
URLリンク(biolpc22.york.ac.uk)
726:デフォルトの名無しさん
04/03/03 09:59
Software/wxWidgets/wxBuilder Preview
URLリンク(g.yi.org)
727:デフォルトの名無しさん
04/03/11 13:26
いろんなものがwxWidgetsに改名されつつありますね。
CVSでソースとってる人は"CVS and maillist hostname changed"という
サブジェクトのメールを参考に作業をお忘れなく。
728:デフォルトの名無しさん
04/03/12 17:31
URLリンク(wxwindowsjp.sourceforge.jp)
Remarks
イベントを送る(sending)ことと (ProcessEvent メソッドを使って) ポストすることとの違いは、
↓
イベントを(ProcessEvent メソッドを使って)送る(sending)ことと、ポストすることとの違いは、
です。意味が変わってしまう誤訳ですので進言しました。
729:思兼 ◆l3iwkTImVo
04/03/16 21:19
結局まだ更新してません.スンマセン.
>>728
Thanx. 反映しておきました.
730:思兼 ◆l3iwkTImVo
04/03/16 21:38
ドキュメントのバージョンアップの問題はこれからも起こるから,原文のバージョンアップに
対応する方法を確立しておいた方が良いかも.
原文の旧バージョンと新バージョンをdiffして,変更があったファイルをリストアップして,
日本語訳をバージョンアップに対応させるたびにリストからそのファイルを削除していくという
方法はどうだろう.もちろん変更があったファイルのリストはcvsで管理すると.
731:デフォルトの名無しさん
04/03/17 18:05
いいと思います...が,sfで管理者やっている面子がスレッドを
見てないようですね...
732:思兼 ◆l3iwkTImVo
04/03/18 03:00
とりあえず,wxWindows→wxWidgetsの置換と,本家URLの置換をしてみました.
日本語版プロジェクトサイトで公開してるのを見て,問題があったら指摘してください.
733:デフォルトの名無しさん
04/03/18 14:03
ていうかコンパイルできる環境は構築したけど、難しいなこれ。
リファレンス見ても全く分からん。機能があるのは分かるが使い方が分からん。
ここにいる人って、実際にリファレンス使ってプログラミングしてるの?
リファレンスを翻訳されるのは有難いが、分かりやすいチュートリアルが欲しいところ。
ウィンドウを出すだけじゃなくて、他のコントロールを使う方法とか・・・。
734:デフォルトの名無しさん
04/03/18 14:23
>>733
僕は今の所リファレンスだけで十分だけど。
使い方分からんのは例えば何?気が向いたらチュートリアル書くよ。
735:思兼 ◆l3iwkTImVo
04/03/18 14:44
>>733
使い方が判らないならサンプルプログラムを見たら良いと思うよ.
736:デフォルトの名無しさん
04/03/18 15:12
wxTutorial.pdf
wxWindows-2.4.2-PDF.zip
URLリンク(prdownloads.sourceforge.net)
737:デフォルトの名無しさん
04/03/18 15:43
>>734-736
レスさんくす。
とりあえず、サンプルプログラムとPDFを見てやってみることにします。
738:デフォルトの名無しさん
04/03/18 16:02
topic overviewを見るのがおすすめ。
739:デフォルトの名無しさん
04/03/19 14:43
Audacity
URLリンク(audacity.sourceforge.net)
wxWindonwsで作られてるみたい
GPLなのでソースコードも公開されてます
740:灰
04/03/21 09:09
見てますョ。
741:デフォルトの名無しさん
04/03/21 23:18
2.4.2をダウンロードする下に、2.5.1って言うのがあるんだが、こっちを落したほうが良いの?
来たばっかでワカンネ…
742:思兼 ◆l3iwkTImVo
04/03/22 01:50
>>741
安定版の2.4.2で良いと思うよ.
743:デフォルトの名無しさん
04/03/22 02:00
このライブラリを使って作ったソフトを
商用としてパッケージや製品へのバンドルなどで
販売したとしてソースの公開は必要ですか?
ソースを改変してなければ問題ないのかなと
認識してますが、あってますか?
744:741
04/03/22 07:46
>>742
サンクス。とりあえず、2.4.2でやってみます。
ageちまった…スマソ
745:デフォルトの名無しさん
04/03/22 10:29
>>743
どこをどう読んでそう認識しました?
746:デフォルトの名無しさん
04/03/23 01:46
>743
まずライセンス嫁
URLリンク(www.wxwindows.org)
L-GPLかwxWindows Library Licence, Version 3のどっちか守ればOK
747:デフォルトの名無しさん
04/03/23 03:52
>>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 に名前変わったのかよ!!
749:デフォルトの名無しさん
04/03/30 00:40
非Windows以外の環境でwxHTMLに日本語表示できた人いらっしゃいます?
Liunxでeuc-jp, utf-8, unicodeどれもダメ。念のためhtml中のcharsetも指定したけどダメ。
euc-jpとutf-8は文字化け、unicodeはエラーになる。
unicodeが有効にしてないため、
メニューやダイアログボックスは何も変換しなくてもそのまま表示されるけど、
wxHTMLだけがうまくいきません。成功した人、設定を教えて下さい
750:デフォルトの名無しさん
04/03/30 10:04
>>749
フォントを設定していますか?
751:デフォルトの名無しさん
04/03/30 13:03
言い忘れましたがwxpython上です。でもソースみると単なるラッパーみたい。
>>750
一切していません。全てデフォルトでメニューなどはそのまま表示されます。
デフォルトフォント以外だとフォントを何にするかいちいちダイアログボックスで聞いて来るので
うっとおしいのと、設定しても反映しないことがあるので。
wxHTMLだけ文字化けします。
wxhtmlwindowのSetFonts("", "", (10, 12, 14, 16, 19, 24, 32))
はセグメンテーションエラーになります。