예제 #1
0
        private void btn_refreshData_Click(object sender, RoutedEventArgs e)
        {
            _roomReader         = new RoomReader();
            _courseReader       = new CourseReader();
            _prelectorReader    = new PrelectorReader();
            _courseClassReader  = new CourseClassReader();
            _studentGroupReader = new StudentGroupReader();

            CollectData();
        }
예제 #2
0
        public static Flat Read(byte *data, ref int index)
        {
            if (data[index++] == 0)
            {
                return(null);
            }
            var flat = new Flat();

            flat.Number  = *(int *)(data + index);
            index       += 4;
            flat.Kitchen = RoomReader.Read(data, ref index);
            flat.Room    = RoomReader.Read(data, ref index);
            return(flat);
        }
예제 #3
0
        public MainForm()
        {
            Title      = "MomenTFS";
            ClientSize = new Size(600, 480);
            roomReader = new RoomReader();

            files = new ObservableCollection <TFSFile>();
            files.CollectionChanged += (sender, e) => {
                fileList.DataStore = files;
                fileList.UpdateBindings();
            };

            var imageView  = new ImageView();
            var scrollable = new Scrollable {
                Content             = imageView,
                ExpandContentWidth  = false,
                ExpandContentHeight = false
            };

            var paletteDropdown = new DropDown {
                Visible = false,
            };
            var paletteDropdownLabel = new Label {
                Visible = false,
                Text    = "Palette",
            };

            paletteDropdown.SelectedIndexChanged
                += (sender, e) => RenderTFS(paletteDropdown, imageView);

            var tabControl    = new TabControl();
            var previewLayout = new DynamicLayout();
            var toolbar       = new DynamicLayout();

            var toolbarImageInfoLabel = new Label();

            toolbar.AddRow(
                toolbarImageInfoLabel,
                null,
                paletteDropdownLabel,
                paletteDropdown);

            previewLayout.BeginVertical();
            previewLayout.AddRow(toolbar);
            previewLayout.AddRow(scrollable);
            previewLayout.EndVertical();

            var previewPage = new TabPage {
                Text = "Preview"
            };

            previewPage.Content = previewLayout;
            tabControl.Pages.Add(previewPage);

            var mapDetailsText = new TextArea {
                ReadOnly = true
            };
            var mapDetailsPage = new TabPage {
                Text = "Details"
            };

            mapDetailsPage.Content = mapDetailsText;
            tabControl.Pages.Add(mapDetailsPage);

            var timDataPage = new TabPage {
                Text = "TIM Data"
            };

            tabControl.Pages.Add(timDataPage);

            var collisionImageView = new ImageView();
            var collisionMapPage   = new TabPage {
                Text = "Collision Map"
            };

            collisionMapPage.Content = new Scrollable {
                Content             = collisionImageView,
                ExpandContentWidth  = false,
                ExpandContentHeight = false
            };
            tabControl.Pages.Add(collisionMapPage);

            fileList = new ListBox()
            {
                Width = 200
            };

            var layout = new DynamicLayout();

            layout.BeginVertical();
            layout.BeginHorizontal();
            layout.BeginVertical();
            layout.AddRow(new Label {
                Text = "Files"
            });
            layout.AddRow(fileList);
            layout.EndVertical();
            layout.BeginVertical();
            layout.AddRow(tabControl);
            layout.EndVertical();
            layout.EndHorizontal();
            layout.EndVertical();

            Content = layout;

            var aboutDialog = new AboutDialog()
            {
                Developers = new string[1] {
                    "Samuel Kinnett"
                },
                ProgramName = "MomenTFS",
                Version     = "",
                ProgramDescription
                    = "A TFS viewer based on and inspired by TFSViewer by Lab 313.\n\n" +
                      "Huge thanks to Romsstar and SydMontague for their work in reverse engineering " +
                      "the TFS and MAP file formats!",
                License = License.LicenseString
            };

            var quitCommand = new Command {
                MenuText = "Quit",
                Shortcut = Application.Instance.CommonModifier | Keys.Q
            };

            quitCommand.Executed += (sender, e) => Application.Instance.Quit();

            var aboutCommand = new Command {
                MenuText = "About..."
            };

            aboutCommand.Executed += (sender, e) => aboutDialog.ShowDialog(this);

            var saveImage = new Command {
                MenuText = "Save Image", ToolBarText = "Save Image"
            };

            saveImage.Enabled   = false;
            saveImage.Executed += (sender, e) => SaveImage(this, paletteDropdown);

            var loadTFS = new Command {
                MenuText = "Open TFS", ToolBarText = "Load TFS"
            };

            loadTFS.Executed += (sender, e) => OpenTFS(this);

            var loadISO = new Command {
                MenuText = "Open ISO", ToolBarText = "Open ISO"
            };
            var unloadISO = new Command {
                MenuText    = "Unload ISO",
                ToolBarText = "Unload ISO",
                Enabled     = false
            };

            loadISO.Executed   += (sender, e) => OpenISO(this, loadISO, unloadISO);
            unloadISO.Executed += (sender, e) => CloseISO(loadISO, unloadISO);

            fileList.SelectedIndexChanged += (sender, e)
                                             => OpenSelectedTFS(
                saveImage,
                paletteDropdown,
                paletteDropdownLabel,
                toolbarImageInfoLabel,
                imageView,
                collisionImageView,
                mapDetailsText,
                timDataPage);
            fileList.KeyDown += (sender, e) => {
                if (e.Key == Keys.Delete || e.Key == Keys.Backspace)
                {
                    RemoveTFS();
                }
            };

            fileList.DataStore       = files;
            fileList.ItemTextBinding = Binding.Property(
                (TFSFile tfsFile) => Path.GetFileNameWithoutExtension(tfsFile.Filename));

            // create menu
            Menu = new MenuBar {
                Items =
                {
                    // File submenu
                    new ButtonMenuItem {
                        Text  = "&File",
                        Items =        { loadTFS,loadISO, unloadISO, saveImage }
                    }
                    // new ButtonMenuItem { Text = "&Edit", Items = { /* commands/items */ } },
                    // new ButtonMenuItem { Text = "&View", Items = { /* commands/items */ } },
                },
                ApplicationItems =
                {
                    // application (OS X) or file menu (others)
                    // new ButtonMenuItem { Text = "&Preferences..." },
                },
                QuitItem  = quitCommand,
                AboutItem = aboutCommand
            };

            // create toolbar
            // ToolBar = new ToolBar { Items = { clickMe, loadTFS } };
        }