コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

Luaridaのメニュ編 (1)

Luaridaは起動するとアプリの選択メニュがでてきます。このメニュ自体もluaスクリプトで書かれています。下記です。Luaridaは実行すると、SDカードのluaridaフォルダにあるluarida.luaプログラムを読み込んで実行します。これがメニュプログラムです。このメニュプログラムを書き換えれば、独自のメニュや起動後直ぐにオリジナルプログラムを立ち上げることができます。

------------------------------------------
--アプリ選択メニュ
------------------------------------------
--関数宣言--------------------------------
main={} --mainメソッド
split={} --指定キャラクタの前後で2つの文字列に分ける
--グローバル変数宣言----------------------
Menu={
  "はじめに, hajimeni.lua"
, "exitサンプル, exitsample.lua"
, "加速度センササンプル, gsensorsample.lua"
, "ラジオボタンサンプル, radiobuttonsample.lua"
, "リストサンプル, listsample.lua"
, "エディットサンプル, editlua.lua"
, "画像ファイルサンプル, bitmapsample.lua"
, "チェックリストサンプル, checklist.lua"
, "文字表示サンプル, textsample.lua"
, "グラフィックサンプル, graphicsample.lua"
, "Dialogのサンプル, dialogsample.lua"
, "文字入力サンプル, textinput.lua"
, "画面タッチサンプル,touchsample.lua"
, "簡単Lua電卓, dentaku.lua"
, "明示的アプリ呼び出しサンプル, explicitsample.lua"
, "暗黙のアプリ呼び出しサンプル, implicitsample.lua"
, "ルアリダアプリ選択メニュ, luarida.lua"
}
Path="/sdcard/luarida/" --luaファイルを保存しているPath
------------------------------------------
mt={}
mt.__newindex=function(mtt,mtn,mtv)
  dialog( "Error Message", "宣言していない変数 "..mtn.." に値を入れようとしています", 0 )
  touch(3)
end
mt.__index=function(mtt,mtn)
  dialog( "Error Message", "変数 "..mtn.." は宣言されていません", 0 )
  touch(3)
end
setmetatable(_G,mt)
--------以下が実プログラム----------------
------------------------------------------
--文字の分解
------------------------------------------
function split(str, d)
local s = str
local t = {}
local p = "%s*(.-)%s*"..d.."%s*"
local f = function(v) table.insert(t, v) end

 if s ~= nil then
   string.gsub(s, p, f)
   f(string.gsub(s, p, ""))
 end
 return t
end
------------------------------------------
--メインプログラム
------------------------------------------
function main()
local t={}
local tmenu={}
local a, i
local key
local value
local x, y, b

 canvas.drawCls( color(0,0,255) ) --背景を青に
 item.clear()                     --item Listのclear
 --menuテーブルを分解してitem Listに追加していく
 for key,value in pairs( Menu ) do
   t = split( value, "," )
   item.add( t[1], 0 )
   tmenu[key] = t[2]  --実行ファイル名をtmenuに取得
 end
 --リスト選択
 a = item.list("Luarida Ver."..system.version().."          2タッチでエディタが立ち上がります" )
 if( a~=0 )then		
   for i=1, 300 do
     x, y, b = touch()
     if( b~=1 )then
       --エディタ起動
       system.impCallActionView("file://"..Path..tmenu[a], "text/plain")
       break
     end
   end
   system.setrun( Path..tmenu[a] )
 else
   dialog( "Luaridaを終了します", "また使ってね", 1 )
   --Luaridaを強制終了します
   system.exit()
 end
end
main()

2タッチでエディタが立ち上がります

luarida.luaの78行目からのforループの部分が、Ver1.20Betaで新規に追加された部分です。このループの間に、画面タッチが入ると、暗黙のintent呼び出しが行われる処理に入ります。結果して、選択したアプリファイルを編集するエディタを呼び出すことになります。
これで、Androidでの編集も楽になりました。また、動画にもあるように、sheditor liteを使えば、直接Luaridaを呼び出すことができます。