ウィンドウ分割の上下と左右No.02910
Micky さん 09/08/04 17:03
 
まいどお世話になります。

ウィンドウの上下分割状態からいきなり左右に切り替えると、
一度分割無しになってから改めて左右の分割コマンドが動作していると思います。
これをいきなり切り替わるようにならないでしょうか。

いきなりという表現が良いかどうか割りませんが、上下分割して
上下別々のところを見ていて、左右分割の方が見やすいかなと思って
切り替えると表示場所が変わってしまい、またスクロールしないといけません。
左右分割から上下分割に変えるときも同じ。

せっかくなんでそれぞれのトップ位置とか、カーソル位置とか基準で
切り替わらないもんでしょうか。

よろしくお願いします。

[ ]
RE:02910 ウィンドウ分割の上下と左右No.02915
秀丸担当 さん 09/08/05 09:43
 

>ウィンドウの上下分割状態からいきなり左右に切り替えると、
>一度分割無しになってから改めて左右の分割コマンドが動作していると思います。
>これをいきなり切り替わるようにならないでしょうか。

確かにいきなり切り替える場合、各カーソル位置を覚えておいたら便利かもしれ
ません。
やるかどうかはわかりませんが、ネタとして参考にさせていただきます。
現状ではマクロでやるとできるかもしれません。

(例)
menu "上下分割","左右分割";
#split = result;
if( #split == 0 ) endmacro;
#stateOrg = splitstate;
if( #stateOrg ) {
  if( #stateOrg == 1 ) {  //上,左
    #yTop1 = screentopy;
    #x1 = x;
    #y1 = y;
    splitswitch;
    #yTop2 = screentopy;
    #x2 = x;
    #y2 = y;
  } else {  //下,右
    #yTop2 = screentopy;
    #x2 = x;
    #y2 = y;
    splitswitch;
    #yTop1 = screentopy;
    #x1 = x;
    #y1 = y;
  }
  split #split;
  if( splitstate == 1 ) { //上,左
    disabledraw;
    moveto #x1, #y1;
    enabledraw #yTop1;
    splitswitch;
    disabledraw;
    moveto #x2, #y2;
    enabledraw #yTop2;
    if( #stateOrg == 2 ) splitswitch;
  } else {  //下,右
    disabledraw;
    moveto #x2, #y2;
    enabledraw #yTop2;
    splitswitch;
    disabledraw;
    moveto #x1, #y1;
    enabledraw #yTop1;
    if( #stateOrg == 1 ) splitswitch;
  }
} else {
  split #split;
}

[ ]
RE:02915 ウィンドウ分割の上下と左右No.02918
Micky さん 09/08/05 10:56
 
まいどお世話になります。

秀丸担当 write:

> やるかどうかはわかりませんが、ネタとして参考にさせていただきます。
採用されればうれしいです。

> 現状ではマクロでやるとできるかもしれません。
わざわざマクロ作っていただき、ありがとうございます。

> menu "上下分割","左右分割";
> #split = result;
> if( #split == 0 ) endmacro;
> #stateOrg = splitstate;
現在の分割状況によって切り替えようかと思うのですが、
上下分割中か、左右分割中かをマクロで知るにはどのコマンドを
使えばよいでしょうか

お手数をおかけしますが、よろしくお願いします。

[ ]
RE:02918 ウィンドウ分割の上下と左右No.02922
秀丸担当 さん 09/08/05 15:32
 

>現在の分割状況によって切り替えようかと思うのですが、
>上下分割中か、左右分割中かをマクロで知るにはどのコマンドを
>使えばよいでしょうか

いまのところ上下か左右を知るキーワードは無いです。
他の方からも要望ありまして、splitmodeのようなキーワードを追加予定です。
β5で追加させていただきます。

[ ]
RE:02922 ウィンドウ分割の上下と左右No.02996
Micky さん 09/08/06 19:59
 
まいどお世話になります。

秀丸担当 write:

> 他の方からも要望ありまして、splitmodeのようなキーワードを追加予定です。
> β5で追加させていただきます。
ありがとうございます。無事動作しました。
ヘルプの記載がまだのようです > splitmode

あと、splitstateの説明が上下の表記のみですが、左右の表記も
追加した方がよいかと思います。


以下、マクロ修正版
// 上下分割 と 左右分割 を切り替えるマクロ ChgSplit.mac
// 秀丸担当様 <xxxxxxxxxxxxxxxxxxx@maruo.co.jp> 2009-08-05(水)
// Micky 2009-08-06(木)
// message char(splitmode + 0x30);
// menu "上下分割","左右分割";
// #split = result;
if(splitmode == 0) {
    endmacro;
} else if(splitmode == 1) {
    #split = 2;
} else if(splitmode == 2) {
    #split = 1;
}

if( #split == 0 ) endmacro;
#stateOrg = splitstate;
if( #stateOrg ) {
  if( #stateOrg == 1 ) {  //上,左
    #yTop1 = screentopy;
    #x1 = x;
    #y1 = y;
    splitswitch;
    #yTop2 = screentopy;
    #x2 = x;
    #y2 = y;
  } else {  //下,右
    #yTop2 = screentopy;
    #x2 = x;
    #y2 = y;
    splitswitch;
    #yTop1 = screentopy;
    #x1 = x;
    #y1 = y;
  }
  split #split;
  if( splitstate == 1 ) { //上,左
    disabledraw;
    moveto #x1, #y1;
    enabledraw #yTop1;
    splitswitch;
    disabledraw;
    moveto #x2, #y2;
    enabledraw #yTop2;
    if( #stateOrg == 2 ) splitswitch;
  } else {  //下,右
    disabledraw;
    moveto #x2, #y2;
    enabledraw #yTop2;
    splitswitch;
    disabledraw;
    moveto #x1, #y1;
    enabledraw #yTop1;
    if( #stateOrg == 1 ) splitswitch;
  }
} else {
  split #split;
}


---以下の内容はコミュニテックス会議室システムにより付加されました。
本文中のメールアドレスは伏せ字に変換されました。伏せ字にしたくない場合
はメールアドレスを""で囲んで書き込んでください。

[ ]
RE:02996 ウィンドウ分割の上下と左右No.03004
秀丸担当 さん 09/08/07 10:47
 

>ヘルプの記載がまだのようです > splitmode
>
>あと、splitstateの説明が上下の表記のみですが、左右の表記も
>追加した方がよいかと思います。

ヘルプの記載はまだでした。ヘルプも書いておきます。
splitstateのほうも追加しておきます。

[ ]