エントリの長いリスト(約1500)をロードして表示する必要がある古いMotifアプリケーションを扱っています。xmFormWidgetClass
viaのインスタンスを作成および管理してXtVaCreateManagedWidget()
から、一連の線形階層を詰め込みますxmFrameWidgetClass->xmFormWidgetClass->xmFormWidgetClass->xmPushButtonWidgetClass
。それぞれPushButton
に複数行のラベルが含まれています。これが読み込まれると、多くのCPUが必要になり、X/Motifライブラリ内でいくつかのジオメトリ計算を実行します。新しいボタンが追加されるペースは、非常に急速に低下します。の内部で使用されているO(N)アルゴリズムがあるようですXtVaCreateManagedWidget()
。
XtUnrealizeWidget()
の元のインスタンスで実行すると、状況ははるかに良くなりますxmFormWidgetClass
。エントリはほぼ一定の速度で追加されていますが、作成したもの全体を表示する方法が見つかりません。XtRealizeWidget()
の元のインスタンスはxmFormWidgetClass
ウィンドウにレンダリングされません。
私は何が間違っているのですか?階層にデータを入力してからジオメトリを計算し、それを一度に画面にレンダリングする方法はありますか?
アプリケーションの再設計はオプションですが、これはオプションの最後の手段です。
私をMotifライブラリ内に留めておくためのアドバイスは大歓迎です!
よろしく、/ Sergey