@@ -40,8 +40,8 @@ namespace AvatarExplorer.UI;
4040
4141public partial class MainWindow : Window
4242{
43- private readonly PageManager _main_pageManager = new ( ) ;
44- private readonly ScrollManager _main_scrollManager = new ( ) ;
43+ private readonly PageManager _main_pageManager = new ( defaultValue : - 1 ) ;
44+ private readonly ScrollManager _main_scrollManager = new ( defaultValue : Vector . Zero ) ;
4545
4646 private string _main_lastSearchTextCache = string . Empty ; // 最後に実行された検索のキャッシュ
4747 private string _main_searchTextCache = string . Empty ;
@@ -267,7 +267,7 @@ private void Main_RenderLeftPanel()
267267 }
268268 }
269269
270- int currentPage = _main_pageManager . GetPage ( customState ) ; // -1が返された場合は対応していないStateのため、全てのアイテムを表示してあげる
270+ int currentPage = _main_pageManager . Get ( customState ) ; // -1が返された場合は対応していないStateのため、全てのアイテムを表示してあげる
271271
272272 foreach ( ItemCountInfo itemCountInfo in currentPage != - 1 ? items . Skip ( currentPage * UserPreferences . ItemsPerPage ) . Take ( UserPreferences . ItemsPerPage ) : items )
273273 {
@@ -288,7 +288,7 @@ private void Main_RenderLeftPanel()
288288
289289 // スクロール位置をDictionaryから復元してあげる
290290 Main_LeftPanelScrollViewer . Presenter ? . UpdateLayout ( ) ;
291- Main_LeftPanelScrollViewer . Offset = _main_scrollManager . GetScrollValue ( customState ) ;
291+ Main_LeftPanelScrollViewer . Offset = _main_scrollManager . Get ( customState ) ;
292292 }
293293 private void LeftPanel_ItemButton_Click ( object ? sender , RoutedEventArgs e )
294294 {
@@ -306,8 +306,8 @@ private void LeftPanel_ItemButton_Click(object? sender, RoutedEventArgs e)
306306
307307 if ( button . Tag is PageButtonInfo pageButtonInfo )
308308 {
309- _main_pageManager . SetPage ( pageButtonInfo . ItemTagState , pageButtonInfo . NextPageValue ) ;
310- _main_scrollManager . SetScroll ( pageButtonInfo . ItemTagState , new ( ) ) ; // 今のStateのページをリセットしてあげる
309+ _main_pageManager . Add ( pageButtonInfo . ItemTagState , pageButtonInfo . NextPageValue ) ;
310+ _main_scrollManager . Remove ( pageButtonInfo . ItemTagState ) ; // 今のStateのページをリセットしてあげる
311311 Main_RenderLeftPanel ( ) ;
312312 }
313313 }
@@ -332,7 +332,7 @@ private void Main_RenderRightPanel()
332332
333333 _main_lastRightPanelItemTagState = itemTagState ;
334334
335- int currentPage = _main_pageManager . GetPage ( itemTagState ) ; // -1が返された場合は対応していないStateのため、全てのアイテムを表示してあげる
335+ int currentPage = _main_pageManager . Get ( itemTagState ) ; // -1が返された場合は対応していないStateのため、全てのアイテムを表示してあげる
336336
337337 foreach ( ItemCountInfo itemCountInfo in currentPage != - 1 ? items . Skip ( currentPage * UserPreferences . ItemsPerPage ) . Take ( UserPreferences . ItemsPerPage ) : items )
338338 {
@@ -356,7 +356,7 @@ private void Main_RenderRightPanel()
356356
357357 // スクロール位置をDictionaryから復元してあげる
358358 Main_RightPanelScrollViewer . Presenter ? . UpdateLayout ( ) ;
359- Main_RightPanelScrollViewer . Offset = _main_scrollManager . GetScrollValue ( itemTagState ) ;
359+ Main_RightPanelScrollViewer . Offset = _main_scrollManager . Get ( itemTagState ) ;
360360 }
361361 private async void RightPanel_ItemButton_Click ( object ? sender , RoutedEventArgs e )
362362 {
@@ -374,16 +374,16 @@ private async void RightPanel_ItemButton_Click(object? sender, RoutedEventArgs e
374374 AvatarExplorer . Select ( itemTagInfo . State , itemTagInfo . Value ) ;
375375 Main_CheckPageStates ( ) ;
376376 Main_CheckScrollStates ( ) ;
377- _main_scrollManager . SetScroll ( itemTagInfo . State , Main_RightPanelScrollViewer . Offset ) ; // 次の画面に行くため、今のStateのスクロール位置を保存する
377+ _main_scrollManager . Add ( itemTagInfo . State , Main_RightPanelScrollViewer . Offset ) ; // 次の画面に行くため、今のStateのスクロール位置を保存する
378378
379379 Main_RenderRightPanel ( ) ;
380380 }
381381 }
382382
383383 if ( button . Tag is PageButtonInfo pageButtonInfo )
384384 {
385- _main_pageManager . SetPage ( pageButtonInfo . ItemTagState , pageButtonInfo . NextPageValue ) ;
386- _main_scrollManager . SetScroll ( pageButtonInfo . ItemTagState , new ( ) ) ; // ページは今のStateをリセットしてあげる
385+ _main_pageManager . Add ( pageButtonInfo . ItemTagState , pageButtonInfo . NextPageValue ) ;
386+ _main_scrollManager . Remove ( pageButtonInfo . ItemTagState ) ; // ページは今のStateをリセットしてあげる
387387
388388 if ( pageButtonInfo . ItemTagState == ItemTagStates . SearchItem ) Main_ExecuteSearchItems ( ) ;
389389 else Main_RenderRightPanel ( ) ;
@@ -432,13 +432,13 @@ private void Main_ExecuteSearchItems(string searchText = "")
432432 }
433433
434434 // 検索画面に切り替わる時に、前の画面のスクロール位置を保存してあげる
435- if ( ! _main_isLastWindowSearch ) _main_scrollManager . SetScroll ( _main_lastRightPanelItemTagState , Main_RightPanelScrollViewer . Offset ) ;
435+ if ( ! _main_isLastWindowSearch ) _main_scrollManager . Add ( _main_lastRightPanelItemTagState , Main_RightPanelScrollViewer . Offset ) ;
436436
437437 // 検索文字列が前回と違う場合はページ、スクロール位置をリセットする
438438 if ( searchFilter . ToString ( ) != _main_lastSearchTextCache )
439439 {
440- _main_pageManager . SetPage ( ItemTagStates . SearchItem , 0 ) ;
441- _main_scrollManager . SetScroll ( ItemTagStates . SearchItem , new ( ) ) ;
440+ _main_pageManager . Add ( ItemTagStates . SearchItem , 0 ) ;
441+ _main_scrollManager . Remove ( ItemTagStates . SearchItem ) ;
442442 }
443443 _main_lastSearchTextCache = searchFilter . ToString ( ) ;
444444
@@ -449,7 +449,7 @@ private void Main_ExecuteSearchItems(string searchText = "")
449449 if ( items . Length == 0 ) Main_ShowNoItemsLabel ( ) ;
450450 else Main_HideNoItemsLabel ( ) ;
451451
452- int currentPage = _main_pageManager . GetPage ( ItemTagStates . SearchItem ) ; // SearchItemは必ずページが存在しているため
452+ int currentPage = _main_pageManager . Get ( ItemTagStates . SearchItem ) ; // SearchItemは必ずページが存在しているため
453453
454454 foreach ( Item item in items . Skip ( currentPage * UserPreferences . ItemsPerPage ) . Take ( UserPreferences . ItemsPerPage ) )
455455 {
@@ -474,7 +474,7 @@ private void Main_ExecuteSearchItems(string searchText = "")
474474
475475 // スクロール位置をDictionaryから復元してあげる
476476 Main_RightPanelScrollViewer . Presenter ? . UpdateLayout ( ) ;
477- Main_RightPanelScrollViewer . Offset = _main_scrollManager . GetScrollValue ( ItemTagStates . SearchItem ) ;
477+ Main_RightPanelScrollViewer . Offset = _main_scrollManager . Get ( ItemTagStates . SearchItem ) ;
478478 }
479479 #endregion
480480
@@ -519,8 +519,8 @@ private void Main_ExecuteUndo()
519519 private void Main_ExecuteHome ( )
520520 {
521521 AvatarExplorer . SelectClear ( ) ;
522- _main_pageManager . ResetAllPageValues ( ) ;
523- _main_scrollManager . ResetAllScrollValues ( ) ;
522+ _main_pageManager . Clear ( ) ;
523+ _main_scrollManager . Clear ( ) ;
524524 Main_RenderRightPanel ( ) ;
525525 }
526526 private void Main_ReloadCurrentWindow ( )
@@ -532,7 +532,7 @@ private void Main_ReloadCurrentWindow()
532532 else
533533 {
534534 // 再読込する前に、前の画面のスクロール位置を保存してあげる
535- _main_scrollManager . SetScroll ( _main_lastRightPanelItemTagState , Main_RightPanelScrollViewer . Offset ) ;
535+ _main_scrollManager . Add ( _main_lastRightPanelItemTagState , Main_RightPanelScrollViewer . Offset ) ;
536536 Main_RenderRightPanel ( ) ;
537537 }
538538
@@ -551,7 +551,7 @@ private void Main_CheckPageStates()
551551 foreach ( var pageInfo in _main_pageManager . GetKeys ( ) . Where ( i => ! selectedItemTagStates . Contains ( i ) ) )
552552 {
553553 if ( pageInfo == ItemTagStates . RootItem ) continue ;
554- _main_pageManager . ResetPageValue ( pageInfo ) ;
554+ _main_pageManager . Remove ( pageInfo ) ;
555555 }
556556 }
557557 private void Main_CheckScrollStates ( )
@@ -565,7 +565,7 @@ private void Main_CheckScrollStates()
565565
566566 foreach ( var scrollInfo in _main_scrollManager . GetKeys ( ) . Where ( i => ! selectedItemTagStates . Contains ( i ) ) )
567567 {
568- _main_scrollManager . ResetScrollValue ( scrollInfo ) ;
568+ _main_scrollManager . Remove ( scrollInfo ) ;
569569 }
570570 }
571571
0 commit comments