[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/08 22:45 / Filesize : 338 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【GUIライブラリ】wxWindowsでのひょーん



1 名前:デフォルトの名無しさん mailto:sage [03/05/06 11:04]
クロスプラットフォームGUIライブラリのwxWindowsについて語りましょう。

本家
 www.wxwindows.org/
dW : Linux : wxWindowsの概要
 www-6.ibm.com/jp/developerworks/linux/010413/j_l-wxwin.html
SunWorld Online:wxWindows――無名だが成熟したGUIツールキット
 www.idg.co.jp/sw/back/200102/20010219_01_report.html
メルマガ
 www.mag2.com/m/0000108320.htm

1はこれからインストールします

411 名前:_ mailto:sage [03/08/20 20:05]
homepage.mac.com/yamazaki8

412 名前:お気に入り集 ☆http://beauty.h.fc2.com/ [03/08/20 21:17]
お気に入り集 ☆
beauty.h.fc2.com/


413 名前:◆v/.u/aNe9w mailto:sage [03/08/24 01:57]
やばい忙しいなんてもんじゃない。
書き込みエラーまで出た。
超忙しい、超エラー、超やばい。

414 名前:デフォルトの名無しさん mailto:sage [03/08/30 07:41]
extra.zipを解凍して出てくるbin、shareフォルダは
mingwをインストールしたディレクトリ直下と
mingw32フォルダ内のどちらにコピーするのですか?

d:/mingw/bin
d:/mingw/mingw32/bin

415 名前:デフォルトの名無しさん mailto:sage [03/08/30 10:53]
メルマガの作者は何を目指してるのだろうか。
ミス多いし文章読みにくい。。。鬱だ。
Javaに乗り換えよう。

416 名前:デフォルトの名無しさん mailto:sage [03/08/30 18:44]
>>415
Javaに乗り換えられるなら、それが良いかも

というか、メルマガなんてなくても平気じゃない?

417 名前: mailto:sage [03/08/31 03:15]
ひゃー。
wxStringようやっと終った。長いよ。
wxwindowsjp.sourceforge.jp/docs/html/wx/wx368.htm#wxstring


418 名前: [03/08/31 19:37]
たまにはあげ。
Drag and drop overview 終了なり
wxwindowsjp.sourceforge.jp/docs/html/wx/wx495.htm#wxdndoverview

419 名前:デフォルトの名無しさん mailto:sage [03/08/31 20:48]
おつかるー!



420 名前:デフォルトの名無しさん [03/09/02 01:28]
wxTreeCtrl を訳してみました。
いちばん、自信のないところ:
EVT_TREE_GET_INFO(id, func)
アプリケーションから情報を要求する。?
EVT_TREE_SET_INFO(id, func)
情報が与えられた。?
それと、wxTreeCtrl::Unselect と wxTreeCtrl::UnselectAll の違いも文面から
読み取れていません。
コードで試していないのがいかんのですが。




421 名前: mailto:sage [03/09/03 01:41]
> 420
おつかれさまです。マージしました。遅れてスマソ

> EVT_TREE_GET_INFO(id, func)
> アプリケーションから情報を要求する。?
> EVT_TREE_SET_INFO(id, func)
> 情報が与えられた。?

むむむ、情報無さすぎですね。コードをHackしないとわからないか……
多分、Itemに情報をsetする/Itemから情報をgetするときに発生する
イベントだと思うけど……

422 名前:デフォルトの名無しさん mailto:sage [03/09/03 20:59]
>>328
亀レスだけど、手元の環境(共有DLL・非デバッグ)でやると178,290byteになったよ
デバッグ版で作ったのかな?


423 名前:デフォルトの名無しさん mailto:sage [03/09/03 21:04]
非デバッグだと凄く小さい…デバッグ版だと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

424 名前:思兼 ◆l3iwkTImVo mailto:sage [03/09/03 22:46]
>>422
 すいません.-DNDEBUGやってませんでした.簡単に実験しただけなので,
オプションをもっと弄ればさらに小さく出来るかもしれません.

 最近卒研とプロコンと夏休みの宿題(笑)が忙しいので,翻訳に手が回りません.
しばらく陰で応援しています.

425 名前:デフォルトの名無しさん [03/09/09 22:06]
がんばれあげ

426 名前: [03/09/13 13:23]
帰ってきたぞ。イァ〜
やっぱりPC再セットアップは大変ですな。

wxDropSource終了しました。
wxwindowsjp.sourceforge.jp/docs/html/wx/wx125.htm#wxdropsource

427 名前:デフォルトの名無しさん mailto:sage [03/09/14 09:59]
おつ

428 名前:デフォルトの名無しさん mailto:sage [03/09/14 10:23]
>>107です。
4ヶ月越しですが、ようやく今日から始めました。
とりあえずMinimalに感動しました。
皆様の翻訳大変ありがたいです。がんばってください。


429 名前:デフォルトの名無しさん mailto:sage [03/09/16 17:37]
C++BuilderXに採用…?



430 名前:デフォルトの名無しさん mailto:sage [03/09/16 18:49]
>>429
採用らしいね。
ついにwxWindowsもメジャー化?

431 名前:思兼 ◆l3iwkTImVo mailto:sage [03/09/16 19:18]
マジ?
ソースキボンヌ

432 名前:思兼 ◆l3iwkTImVo mailto:sage [03/09/16 21:31]
slashdot.jp/article.pl?sid=03/09/16/0613259&topic=58&mode=nested
これは発見した.これ以外にwxWindows採用って言ってるところある?

433 名前:デフォルトの名無しさん mailto:sage [03/09/16 21:59]
>>432
ttp://www.borland.com/cbuilderx/tour/View_C++BuilderX%20Turbo%20Demo.htm

のデモ見てたら、New wx framework projectとか出てたのと、
wxStringとかwxCommandEventとか出てたけどコレかなぁ。

434 名前:デフォルトの名無しさん mailto:sage [03/09/16 22:17]
>>433
wxFrameとか出てくるね。

435 名前:デフォルトの名無しさん mailto:sage [03/09/16 22:46]
wxWindowsでRADな環境になる…のかな?

436 名前:デフォルトの名無しさん mailto:sage [03/09/16 23:08]
RADいいねぇ。
でも日本語版はいつになる事やら。

437 名前:デフォルトの名無しさん mailto:sage [03/09/17 00:05]
>でも日本語版はいつになる事やら。
へ?
po書くだけじゃないの?

438 名前:デフォルトの名無しさん mailto:sage [03/09/17 00:15]
>>432
wxwindowsのオフィシャルサイトにも
www.wxwindows.org/borland01.htm

439 名前:◆v/.u/aNe9w mailto:sage [03/09/17 01:31]
C++BuilderX、ビクーリしますた。ワショーイ、ワショーイ。

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とはいえ勝手に翻訳してて大丈夫かな?
なにかしら、足並みをそろえる必要があったり無かったり?
日本語版には翻訳ドキュメントも付属するのかな?
だとしたら、将来的に翻訳プロジェクトの続行を如何するべきだろう?

などと斜め読みながら思ってみた。ゆっくり読まねばなぁ。



440 名前:デフォルトの名無しさん mailto:sage [03/09/17 11:14]
祭りですか?

441 名前:通りすがり mailto:sage [03/09/18 14:26]
>>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

443 名前: mailto:sage [03/09/19 02:05]
ネットワークが死んで隔離されている間に嬉しいニュースが

> だとしたら、将来的に翻訳プロジェクトの続行を如何するべきだろう?

◯Borlandが自由に使用可能な形で翻訳文を提供
->ありがとう、Borland!! オレたちゃ先 (Howto, Tipsとかの整理) にいくぜ!

◯C++BuilderXに閉じたライセンスでの配布のとき
->残念。BuilderXに閉じていると不便だから、自由に使えるように地道に
 翻訳するよ。

つう感じですかね。
まあ、のんびりやりましょう。

444 名前:デフォルトの名無しさん mailto:sage [03/09/19 07:34]
どちらにしろ構造を先に知っていれば(゚д゚)ウマーかも
漏れはGUIビルダとかを期待かな>BuilderX
マターリマターリ

445 名前:◆v/.u/aNe9w mailto:sage [03/09/19 20:53]
>>443
らじゃあ。
マターリ行きますか。

446 名前:デフォルトの名無しさん mailto:sage [03/09/20 09:46]
すいません。イベントに関して質問があります。
環境はwxWindows-2.4.1 on Gtk+2です。

ウィンドウを直接フレームに張り付けた場合にサイズイベントが呼ばれるんですが、
パネルに格納したものをフレームに張り付けると呼ばれなくなってしまいます。
大きな勘違いをしていると思うのですが、どうすればよいのかご教授願います。

次レスにできるだけ短くしたソースを貼ります。
public wxPanelにしても同じでした。
また、イベントを動的に結合(wxEvtHandler#Connect)しても同じでした。


447 名前:446 mailto:sage [03/09/20 09:47]
#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);


448 名前:446 mailto:sage [03/09/20 12:50]
追記です。
一応解決法としては、MyFrame : public wxFrameを作成してMyWindow* windowをメンバとして持っておいて、
MyFrame#OnSize内で this->window->GetEventHander()->ProcessEvent(event)をする方法がありますが、大変煩わしいです。
例えばwxNotebookに追加したい時も必ずMyNotebook : public wxNotebookを作らないといけないことになってしまいます。



449 名前: [03/09/20 13:31]
>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;
  }
};




450 名前:466 mailto:sage [03/09/20 14:29]
>>449
素早いお返事ありがとうございます。
しかしその方法ではMyWindow::OnSize内でthisは使えませんよね。

…というかそもそもイベントハンドラ内でthisは使っちゃいけないんでしょうか。
だとしたら俺すごいあほですね。。。

451 名前:466 mailto:sage [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]
www.wxwindows.org/wxuniv.htm
に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
www.wxwindows.org/embedded.htm
興味ないからあまりトレースしないけど……


458 名前:デフォルトの名無しさん mailto:sage [03/09/23 17:27]
起動時に既にそのアプリケーションが起動しているかどうか調べたいんですが
どうすればいいのでしょう?ポインタだけでもいいです。
あと、もしそれができるのであれば、WindowsのPostMessageのように
その既に開いているウィンドウに通知したいのです。宜しくお願いします。


459 名前:デフォルトの名無しさん mailto:sage [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 mailto:sage [03/09/23 18:53]
>>458
プロセス間通信までしたいのなら
www.wxwindows.org/manuals/2.4.1/wx498.htm
同じアプリが動いているかどうか確かめるだけならこっちのほうが楽
www.wxwindows.org/manuals/2.4.1/wx340.htm


 結局日本語化はBorlandがやってくれるのかな?プロコンまで3週間切ったけど,どうせ
漏れが翻訳してもBorlandみたいな企業が使ってくれるようなドキュメントにならないと
思うのだが.
 それよりはEclipse用にwxWindowsプラグインでも作ったほうが良いかも.まぁEclipseは
CDTがまだ使い物にならないけどね.

461 名前:デフォルトの名無しさん mailto:sage [03/09/23 20:00]
>>460
ぐはっ!wxSingleInstanceCheckerってそのまんまの名前ですね。ありがとうございます。
日本語訳あるかどうか見に行こうとしたらメンテナンス中だって言われてしまった。


462 名前:灰@もっぱらPerler, C++に戻りたい… ◆v/.u/aNe9w mailto:sage [03/09/23 23:38]
日本語プロジェクトのお話スマソ。

>>460
>  結局日本語化はBorlandがやってくれるのかな?プロコンまで3週間切ったけど,どうせ
どうやら、C++BuilderXはC++Builder6の後継開発環境臭いですね。

Kylix的位置付けなら英語マニュアルしかないのも考えられるけど、
日本語のマニュアルが今まで付属していた既存パッケージの後継であれば、
当然のように日本語圏用のパッケージには日本語マニュアルが付属する可能性は高いッス。

むむむ。
しばし、静観するしかないですな。
時期を見てボーランドに問い合わせでもしてみるべ。

wx340.html 翻訳してもいいかしら?

463 名前:デフォルトの名無しさん mailto:sage [03/09/24 01:43]
>>460
>漏れが翻訳してもBorlandみたいな企業が使ってくれるようなドキュメントにならないと
>思うのだが.
そのあきらめのよさは一体・・・
せっかくなんだからBorlandにコンタクトとってみたら?
多分外注に一括して翻訳依頼出すんだろうから
逆に翻訳予定のないところを聞いてそこから手をつけるとか。

464 名前:デフォルトの名無しさん mailto:sage [03/09/24 02:03]
某はwxWindowsのドキュメントのみをフリーで公開する気があるんだろうか。
personalとは別にドキュメントだけで。

465 名前:デフォルトの名無しさん mailto:sage [03/09/24 03:32]
それはない。

466 名前:◆v/.u/aNe9w mailto:sage [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 mailto:sage [03/09/24 09:07]
ボーランドへの問い合わせのタイミングは、
日本法人からのC++BuilderXかwxWindowsに関する正式発表がでたあたりかな。
今のところ、それらの名前は一切出てないみたいですから、
今問い合わせしてもフライングかと思われ。

468 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 mailto:sage [03/09/24 22:42]
>>468
いちおう確認.バッククォートって知ってる?
wx-configはバッククォートでくくってgccにオプションを渡して使う.

 あと,INCLUDEパスには関係ない話だからそのコンパイルエラーには関係ないけど,
gccがリンクする順序の関係で,wx-configのオプションはソースファイルより後ろに
置かないといけない.

471 名前:デフォルトの名無しさん mailto:sage [03/09/24 22:58]
>470
レスサンクス とりあえずunix系の知識は軽くあるんで``でのサブシェル実行(って言っていいんだよな・・)は分かってる。
gccのバージョンを差し替えたり色々環境をいじり壊してたんでこの機にMinGW MSYS wx全部再インストールすることにした。
今make中です

472 名前:◆v/.u/aNe9w mailto:sage [03/09/24 23:13]
>>471
もし、再インストールしてもエラーが出てしまうようなら、
MSYS 環境は良くわからないが、
試しに
echo `wx-config --cppflags`
して、インクルードパスがどうなっているか見てみるといいかも。

おかしければ、wx-config はシェルスクリプトなので、
直接修正しちゃう手もアリかもしれないッス。

473 名前:デフォルトの名無しさん mailto:sage [03/09/24 23:24]
吐き出されたlibとincludeをみんぐーのフォルダにコピーしたら問題無しでした。バカみたい(ノД`) スレ汚しスマソ

474 名前:デフォルトの名無しさん mailto:sage [03/09/25 00:30]
それをしないためのwx-configなのだが・・・

475 名前:デフォルトの名無しさん mailto:sage [03/09/25 01:25]
>>473
環境変数WXWINをC:\wxWindowsとかにしてないかい?
みんぐーは"\"でなく"/"にしないと-Iオプションのいみないかもよ

476 名前:デフォルトの名無しさん mailto:sage [03/09/25 02:03]
リソース扱う物が
#error "wxr resources require PrologIO"
で止まるなぁ・・・
検索して出てくるとこも入手先書いてないし
( mitbates.mit.edu/oops/Html/SW/wxwin/prologio/proio6.htm )

477 名前:思兼 ◆l3iwkTImVo mailto:sage [03/09/25 03:24]
>>476
それはconfigureのオプションだったと思います.
confiugre --helpで,prologなんちゃらをEnableにするオプションが無いかどうか
調べてみてください.

478 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [03/09/25 19:24]
>>478
XRCはXMLパーザが原因で日本語通らなかったはず
Unicodeビルドしても変わらないんじゃないかな

ただwxXmlResourceはwxLocaleを設定してやれば
getopt風のメッセージ変換してくれるから
poファイル用意してやれば一応日本語は出せるよ
(Windowsでしか確認していないけどね)

中途半端な情報スマソ



480 名前:デフォルトの名無しさん mailto:sage [03/09/25 21:03]
>>479
> getopt風のメッセージ変換してくれるから
> poファイル用意してやれば一応日本語は出せるよ
それは gettext


481 名前:デフォルトの名無しさん mailto:sage [03/09/25 22:55]
>>480
半端な上に嘘書いちゃったよスマソ

482 名前:◆v/.u/aNe9w [03/09/26 00:32]
News Release
www.borland.co.jp/news/cbuilderx_ja.html
C++BuilderX (Enterprise|Developer) 9/29 に発売。
Perlsonal 版は無償なり。
だだし、
> 2003年10月中旬より、弊社Webサイトにて無償ダウンロードサービス(商業開発不可)を開始する予定です。
らしい。

製品情報はこちら
www.borland.co.jp/cbuilderx/index.html

関連スレ: C++Builder相談室 Part7
pc2.2ch.net/test/read.cgi/tech/1061594556/219-

483 名前:デフォルトの名無しさん mailto:sage [03/09/26 00:36]
商業開発不可版のドキュメントでひたすら勉強してあとは本家をゲフゲフ

484 名前:◆v/.u/aNe9w mailto:sage [03/09/26 00:43]
製品情報からの引用
> C++BuilderXは、ボーランドが今まで提供してきたGUIを伴うアプリケーションに主軸
> をおいた「C++Builder」の直接的な後継製品ではありません。ビジュアルデザイナや
> ウィザードなど、従来のC++Builderで提供されてきたような機能は含まれていませ
> ん。
RADがないのか。残念。

んで、なんだかKylixと近い扱いみたいですね。
>>483
日本語マニュアルつかない予感。

485 名前:思兼 ◆l3iwkTImVo mailto:sage [03/09/26 00:46]
www.borland.com/cbuilderx/tour/C%2B%2BBuilderX%20Turbo%20Demo.htm
このデモを見ると,一応RADっぽくコンポーネントをぺたぺた貼り付けられるみたいだよ.

486 名前:デフォルトの名無しさん mailto:sage [03/09/26 00:53]
>日本語マニュアルつかない予感。
翻訳し放題でよかったじゃん(藁

とりあえずGUI抜きのgccの統合開発環境として使い物になればいいや。
ってスレ違いだけど。

487 名前:◆v/.u/aNe9w mailto:sage [03/09/26 01:07]
>>485
んじゃ、今までより機能が落ちるデザイナが付属する感じなのかな?

>>486
> 翻訳し放題でよかったじゃん(藁
蓋が開けられるまで確かなことはいえないですが、
嬉しいような悲しいような…。

本音は日本語マニュアルが付属する方がうれしいなぁ。
正直、自分の翻訳に自信ないしー。

488 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [03/09/28 20:00]
>>490
レスありがとうございます。僕も早くえろい人になりたいです。

説明不足で申し訳ありませんが、複数フレームとは各々独立しているものでして、
トップウィンドウが閉じられても他のフレームは存在しつづけるのです。
つまり、全てのフレームの親はNULLなのです。

複数インスタンスを起動すればいいだけの話なんですが、
起動時に重い処理を行うためにそれを避けています。


492 名前:デフォルトの名無しさん mailto:sage [03/09/28 20:53]
wxwindowsjp.sourceforge.jp/docs/html/wx/wx454.htm (翻訳ありがとうございます)では、
「新しいウィンドウを作成する時には可能な限り常に親フレームを使うことを推奨する.
そうしない時は,トップレベルフレームのwxCloseEventのハンドラで,全ての子フレームを確実に破棄する事.」

とあるのですが、その「全ての子フレームを確実に破棄する」方法が知りたいのです。
全てのウィンドウのリストを保持する・・・?んー。。。

うおーーーーーできましたっ!
Sえんd

493 名前:デフォルトの名無しさん mailto:sage [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 名前: mailto:sage [03/09/28 21:58]
入れ違いですな……wxTopLevelWindows を利用しましたか。
このあたりのグローバル変数もドキュメント化してくれると助かるのですけどね
# 仕様Fixという意味からも

496 名前:デフォルトの名無しさん mailto:sage [03/09/28 22:29]
確かにドキュメント化されてないのは心配ですね。でも結構不変的なオブジェクトっぽいですよ。

REV:1.5以降は wx/window.h に存在してます。REV:HEADでも依然として存在しています。
cvs.wxwindows.org/viewcvs.cgi/wxWindows/include/wx/window.h?annotate=1.5

REV:1.4以前は各々のプラットフォーム毎に持っていたようです。
cvs.wxwindows.org/viewcvs.cgi/wxWindows/include/wx/window.h?annotate=1.4
cvs.wxwindows.org/viewcvs.cgi/wxWindows/include/wx/msw/window.h?annotate=1.1
cvs.wxwindows.org/viewcvs.cgi/wxWindows/include/wx/gtk/window.h?annotate=1.1
cvs.wxwindows.org/viewcvs.cgi/wxWindows/include/wx/motif/window.h?annotate=1.1
cvs.wxwindows.org/viewcvs.cgi/wxWindows/include/wx/mac/window.h?annotate=1.1

つまり、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 名前:デフォルトの名無しさん mailto:sage [03/09/28 23:43]
と思ったんですが、
wxguide.sourceforge.net/guidelines/basics.html
のガイドラインでは
WX_DEFINE_ARRAY (AppFrame*, AppFrames);
で全てのフレームをApp(public wxApp)で管理していました。
のさんの言うように自前で管理することにします。どうも。

498 名前:デフォルトの名無しさん [03/09/29 20:54]
最近wxWindowsの勉強を始めたのですが、サンプルを見ると、
どれもボタンとかメニューを作るたびにIDを割り当てて、
そのIDをベースにコールバックを登録してますよね?

みなさん、そのスタイルでプログラムされてるんですか?
wxID_ANYでまかせて、GetIdを使うやり方は、将来何かまず
いことがおきるでしょうか?

ついでにいうと、せっかくオブジェクト指向なのに、なんで
IDなんていう内部情報を表に見せるようなAPIになってるん
でしょうね。

499 名前: mailto:sage [03/09/29 23:58]
> 498
>wxID_ANYでまかせて、GetIdを使うやり方は、将来何かまず

具体的にはどんな感じ?
# ハンドラ内でif判定?

マクロとか使用せずに登録したいのなら、EvtHandler::Connectを使うのが
スマートだけど……どのみちIDを使用しますな。


> IDなんていう内部情報を表に見せるようなAPIになってるん

IDをメッセージの一種と考えているんでしょうね。
メンバ関数をコールバックするためにオブジェクトそのものをやりとりするよりも
効率的と判断したのですかね?



500 名前:デフォルトの名無しさん mailto:sage [03/09/30 00:10]
>>498
>なんでIDなんていう内部情報を表に見せるようなAPIになってるん
OnFileMenu(wxCommandFileMenuEvent) {}
OnEditMenu(wxCommandEditMenuEvent) {}
OnExitMenu(wxCommandExitMenuEvent) {}
OnOpenMenu(wxCommandOpenMenuEvent) {}

俺はこんなのやりたくないぞ。
OnCommand(wxCommandEvent) {switch (event.GetId())}
の方が素直でいい。

501 名前:デフォルトの名無しさん mailto:sage [03/09/30 02:01]
>>500
やりたくないって最近のGUIフレームワークはみんなそうなんだが。
拡張無しのC++だと発生したイベントとイベントハンドラOnFileMenuの呼び出しを
結びつけるのが難しいから(まさかvirtualにもできないし)wxWではやってないというだけで。

502 名前:デフォルトの名無しさん mailto:sage [03/09/30 02:12]
>>501
ほんとにメニューが増えるたびにクラス作るの?
まじでやりたくないな。。とりあえずSwingは違ったけど。
その最近のGUIフレームワークって何てやつ?

503 名前:501 mailto:sage [03/09/30 02:26]
>>502
>みんなそうなんだが。
>>500の例は少し違ったな。クラスをボコボコ作るわけじゃない。
↓な感じ。
class Form1
{
OnFileMenu(wxCommandMenuEvent) {}
OnEditMenu(wxCommandMenuEvent) {}
OnExitMenu(wxCommandMenuEvent) {}
OnOpenMenu(wxCommandMenuEvent) {}
}

504 名前:デフォルトの名無しさん mailto:sage [03/09/30 02:31]
(´-`).。oO(なんで「MFCに似てるな」で片づけられないんだろう…)

505 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [03/09/30 02:46]
あ、違うか。そうしないのは何故かってことか。なんでだろ?
関数増えまくるのがめんどくさいからかな。
ヘッダにも書かないかんし。まあC++の宿命っつーか。

507 名前:デフォルトの名無しさん [03/09/30 06:45]

WideStudio のドキュドキューンさになんとも馴染めなかったので、
これはどうかと wxWindows を見てみたが、






設計古すぎ もうだめぽ

508 名前:デフォルトの名無しさん mailto:sage [03/09/30 11:00]
>>507
来年また覗きにおいで
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<>.

509 名前:デフォルトの名無しさん mailto:sage [03/09/30 12:23]
よーするにdelegateのないC++は糞だしその上に構築されたライブラリも糞ってこった。



510 名前:デフォルトの名無しさん mailto:sage [03/09/30 13:44]
>>509
delegate自分で書けねーのかよ(激藁


511 名前:507 mailto:ageサンクスコ [03/10/01 00:35]
>>508
おぉ

# gtkmm から早く抜け出したいので期待age.






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<338KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef