GSL Shell 学習:IUP でドラッグ&ドロップ

2016-03-19 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での blogramのランクインカテゴリは、
7、2、0、0、1、 0、0、0、0、0(40)で、換算ポイント 88pt 。
「化学業界」「硝子業界」「FM COCOLO」「e-radio」、
「グルコサミン」「Firefox」bg値変動のみ。
「Perl」「C言語」「Python」「FM青森」全く変化無し。
・-・ - -・

さて、本文。

前(2016-03-16)の記事:「GSL Shell 学習:IUP 実用的使用例(?)
で、“IUP”を使って行けそう。

そこで、ファイル名の取得をドラッグ&ドロップで出来ないか?


IUP」サイトの
ドキュメントは(<紙>にとっては)分かりづらいけど、・・・

頑張って学習した。


そう云うことで、なんとかコード化できた:
function mysplit( inputstr, sep )
if sep == nil then sep = '%s' end
local t={} ; i=1
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
t[i] = str i = i + 1
end
return t
end
charA = |s| ffi.cast( 'char*', s )
voidA = |x| ffi.cast( 'void*', x )

local iup = ffi.load( 'iup' )
ffi.cdef[[
typedef void Ihandle;
typedef void ( __stdcall *Icallback ) ( void*, const char* fnm, int num, int x, int y );
void IupOpen( int );
void IupClose( );
Ihandle* IupDialog( Ihandle* child );
void IupSetAttribute( Ihandle*, const char* name, const char* value );
void IupSetCallback( void*, char*, Icallback );
void IupPopup( void*, int, int );
]]
iup.IupOpen( 0 )

Fcb = ffi.cast( 'Icallback', function( z, F, n, x, y )
Fname=ffi.string(F)
iup.IupClose()
end )

dlg = iup.IupDialog( voidA(0) ) -- 枠だけ
iup.IupSetAttribute( dlg, charA('SIZE'), charA('100x80') )
iup.IupSetAttribute( dlg, charA('TITLE'), charA('DnD here') )
iup.IupSetCallback( dlg, charA('DROPFILES_CB'), Fcb )
iup.IupPopup( dlg, 100, 100 )
----------------------------------------------------------------------------
print( Fname )
FN = mysplit( Fname, '\\' ) print( FN[#FN] ) -- これで、ファイル名
これで、
ダイアログ選択方式でなく、
D&Dでファイル名を得ることが出来る。


更なる学習ダ。


本日はここまで。


Lua ( GSL Shell ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


160226
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク