「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:0
総数:1744
現在:3


XPスタイルでDialog/SpinButtonのデザインが変になる

ページOpenOffice.org FAQの登録ページ
投稿者K.Tsunoda
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2011-04-18 19:40:41 (月)
OSWindowsXP(SP3)
依存するページIssue #117891
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

こんにちは。

今まで、ウィンドウのスタイルを「クラシックスタイル」にしていたので
気付かなかったのですが、ウィンドウスタイルを「XPスタイル」に変えたら
ダイアログに動的に作成したスピンボタンのデザインが変になりました。

(1) 水平タイプ:矢印の向きが逆で内向き [→ ←] になりました。
  動作自体は正しく「左ボタンで減少・右ボタンで増加」です。
(2) 垂直タイプ:「下ボタン」に段差というか縞模様が入っている。
  しかも、既定の「ブルータイプ」と「シルバータイプ」で縞の向きが変わる。

クラシック・XP(シルバー)・XP(ブルー)での画像を添付します。

SpinButtonBug1.gif


作成コードは下記になります。

Sub Main
Dim oDialog As Object
Dim oDialogModel As Object
Dim oSpin1 As Object
Dim oSpin1Model As Object
Dim oSpin2 As Object
Dim oSpin2Model As Object
Dim oSpinBase As Object

 DialogLibraries.LoadLibrary("Standard")
 oDialog = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
 oDialogModel = oDialog.Model

 oSpinBase = oDialog.getControl("Label1")
 oSpin1Model = CreateUnoService("com.sun.star.awt.UnoControlSpinButtonModel")
 oSpin1 = CreateUnoService("com.sun.star.awt.UnoControlSpinButton")
 With oSpin1Model
   .Orientation = 0  ' Horizontal
   .SpinValueMin = 0
   .SpinValueMax = 100
   .SpinValue = 50
 End With
 oSpin1.setModel(oSpin1Model)
 oSpin1.createPeer(oSpinBase.Peer.Toolkit, oSpinBase.Peer)
 oSpin1.setPosSize( 0, 0, oSpinBase.PosSize.Width, _
                          oSpinBase.PosSize.Height, _
                          com.sun.star.awt.PosSize.POSSIZE )

 oSpinBase = oDialog.getControl("Label2")
 oSpin2Model = CreateUnoService("com.sun.star.awt.UnoControlSpinButtonModel")
 oSpin2 = CreateUnoService("com.sun.star.awt.UnoControlSpinButton")
 With oSpin2Model
   .Orientation = 1  ' Vertical
   .SpinValueMin = 0
   .SpinValueMax = 100
   .SpinValue = 50
 End With
 oSpin2.setModel(oSpin2Model)
 oSpin2.createPeer(oSpinBase.Peer.Toolkit, oSpinBase.Peer)
 oSpin2.setPosSize( 0, 0, oSpinBase.PosSize.Width, _
                          oSpinBase.PosSize.Height, _
                          com.sun.star.awt.PosSize.POSSIZE )

 oDialog.Execute()
 oDialog.dispose()
End Sub


わたしのPC環境によるものなのか? 3.0.0のバグなのか? 情報提供お願いします。
(新規追加機能に縛られないように、敢えて 3.0.0 に留めて作業しています)


無題

tani (2011-04-19 16:13:00 (火))

私の環境(WindowsXP, LibreOffice3.3.1)では再現しました。

余談

M.Kamataki (2011-04-19 18:20:58 (火))

わたしも再現することを確認しました。

さて、わたしはまず以下のはにゃ?さんのサンプルを試してみました。

http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOoBasic%2FDialog%2FExample5

垂直タイプですね。縞模様が見えないと思ったんですが、左右の幅が狭いために目立たないだけでしたね。といことで垂直タイプの縞模様が目立たないように幅を狭くするのも回避策かも。(シルバータイプだとダメっぽいですが)

そもそもスピンボタンの設置ができないという問題もありますね。以下のIssueがこの件を指摘しているようです。

Missing support for spinbutton control in dialogs
http://openoffice.org/bugzilla/show_bug.cgi?id=38900

登録された方が遠慮がちにプライオリティを「4」に指定されたせいか、開始済みにもかかわらず忘れられているっぽいです。

無題

K.Tsunoda (2011-04-19 19:51:33 (火))

taniさん、M.Kamatakiさん、テストありがとうございます。

色々とインストールしたりしている内に何か設定ファイルでも壊して
しまったのかとも思ったんですが、やはりバグなんですね。

Issue を書いてみようと思います。

SpinButtonBug2.gif


あのデザインである限り、少なくとも水平タイプのスピンボタンとしては
「使い物にならない」ですから、プライオリティは「2」or「1」?
[Product=ui , Component=ui ]で良いでしょうか?

M.Kamatakiさんのテストバージョンは幾つでしょうか?

わたしのバージョンは OOo3.0.0 ですが、最新の OOo3.3.0 で再現と
いうことでも良いでしょうか?

Issueについて

M.Kamataki (2011-04-19 20:51:42 (火))

わたしが紹介したIssue #38900と同じProductとComponentで登録してください。プライオリティは下げる指定はユーザー判断ですが、4以上に上げる判断は開発者側にあります。プライオリティは「3」のまま登録してください。

わたしがチェックしたのは、OpenOffice.org 3.3.0です。

無題

K.Tsunoda (2011-04-19 22:18:48 (火))

下記で Issue 登録しました。

http://openoffice.org/bugzilla/show_bug.cgi?id=117891

お名前:
題名:


添付ファイル: fileSpinButtonBug2.gif 574件 [詳細] fileSpinButtonBug1.gif 651件 [詳細]